4、numpy——创建数组
1、普通创建——np.array()
创建数组最简单的方法就是使用array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。
import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)
运行结果:
import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)
2、内置方法——np.asarray() np.fromiter()
- numpy.asarray # 类似于numpy.array
- numpy.fromiter # 此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。
2.1 numpy.asarray
语法:
numpy.asarray(a, dtype = None, order = None)
参数:
| 参数 | 描述 |
|---|---|
| a | 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表 |
| dtype | 输入出的数组类型,可选 |
| order | ‘C’为按行的 C 风格数组,’F’为按列的 Fortran 风格数组 |
x = [1, 2, 3] # x是python的列表类型 不是数组
a1 = np.asarray(x)
print(a1) # [1 2 3]
y = (4, 5, 6) # y是python的元组类型
a2 = np.asarray(y, dtype=float, order='F')
print(a2) # [4. 5. 6.]
2.2 numpy.formiter
语法:
numpy.fromiter(iterable, dtype, count = -1)
参数:
| 参数 | 描述 |
|---|---|
| iterable | 任何可迭代对象 |
| dtype | 返回数组的数据类型 |
| count | 需要读取的数据数量,默认为-1,读取所有数据 |
例子:
import numpy as np
x = range(5)
a = np.fromiter(x, float, 5)
print(a)
结果:
[0. 1. 2. 3. 4.]
3 内置方法——np.arange()创建
语法:
numpy.arange(start, stop, step, dtype)
参数:
start 范围的起始值,默认为0
stop 范围的终止值(不包含)
step 两个值的间隔,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
例子:
import numpy as np
# 普通用法
a1 = np.arange(10)
#含起始点
a2 = np.arange(10, 20)
# 带步长
a3 = np.arange(10, 20, 2)
# 倒着
a4 = np.arange(20, 10, -1)
print(a1, '\n', a2, '\n', a3, '\n', a4)
执行结果:
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[10 12 14 16 18]
[20 19 18 17 16 15 14 13 12 11]
4、内置方法——等比等差创建
4.1 np.linspace (起始值,终止值,元素总数):创建一维等差数组。
语法:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:
| 参数 | 描述 |
|---|---|
start |
序列的起始值 |
stop |
序列的终止值,如果endpoint为true,该值包含于数列中 |
num |
要生成的等步长的样本数量,默认为50 |
endpoint |
该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。 |
retstep |
如果为 True 时,生成的数组中会显示间距,反之不显示。 |
dtype |
ndarray 的数据类型 |
例子:
import numpy as np
a1 = np.linspace(0, 10, 5)
print("等差数组:", a1)
a2 = np.linspace(0, 10, 5, retstep=True, dtype=np.int8)
print(a2)
结果:
等差数组: [ 0. 2.5 5. 7.5 10. ]
(array([ 0, 2, 5, 7, 10], dtype=int8), 2.5
4.2 np.logspace(起始值,终止值,元素总数):创建一维等比数组。
语法:
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
base 参数意思是取对数的时候 log 的下标。
| 参数 | 描述 |
|---|---|
start |
序列的起始值为:base ** start |
stop |
序列的终止值为:base ** stop。如果endpoint为true,该值包含于数列中 |
num |
要生成的等步长的样本数量,默认为50 |
endpoint |
该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。 |
base |
对数 log 的底数。 |
dtype |
ndarray 的数据类型 |
例子:
import numpy as np
# 默认底数是 10
a = np.logspace(1.0, 2.0, num=10)
print(a)
# 将对数的底数设为2
a = np.logspace(0, 9, 10, base=2)
print(a)
结果:
[ 10. 12.91549665 16.68100537 21.5443469 27.82559402
35.93813664 46.41588834 59.94842503 77.42636827 100. ]
[ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]
5、内置方法创建(特殊构造)
5.1 np.zeros(shape, dtype=float, order='C'):创建一个全0数组,shape要以元组格式传入
import numpy as np
a1 = np.zeros((3, 4), dtype=int)
print(a1)
a2 = np.zeros_like(a1)
print('副本:', a2)
# 结果:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
副本: [[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
5.2 np.ones(shape, dtype=None, order='C'):创建一个全1数组,shape要以元组格式传入。
import numpy as np
a1 = np.ones((2, 3), dtype=int)
# 返回具有与给定数组相同的形状和类型的数组
a2 = np.ones_like(a1)
print(a2)
结果:
[[1 1 1]
[1 1 1]]
5.3 np.empty(shape, dtype=None, order='C'):创建一个拥有趋近0值的数组,shape要以元组格式传入。
import numpy as np
x = np.empty((2, 3), dtype=int, order='C')
print(x)
'''
[[7209029 6422625 6619244]
[ 100 6553673 0]]
'''
5.4 np.eye(N, M=None, k=0, dtype=float, order='C'):创建一个对角矩阵,N代表行,M代表列。其中有个参数k默认值为0,它代表偏移量,正1时向主对角线右上偏移1位,负1时向主对角线左下偏移1位。
import numpy as np
a1 = np.eye(3, 3, dtype=int)
print(a1)
# 对角线下移
a2 = np.eye(3, 3, k=-1, dtype=int)
print('*************************\n', a2)
# 对角线向上移
a3 = np.eye(3, 3, k=1, dtype=int)
print('*************************\n', a3)
结果:
[[1 0 0]
[0 1 0]
[0 0 1]]
*************************
[[0 0 0]
[1 0 0]
[0 1 0]]
*************************
[[0 1 0]
[0 0 1]
[0 0 0]]
5.5 np.full(shape, fill_value, dtype=None, order='C'):创建一个以fill_value进行填充的数组,fill_value为想要填充的值
import numpy as np
a1 = np.full((3, 3),fill_value=5)
print(a1)
#结果
[[5 5 5]
[5 5 5]
[5 5 5]]
6、从随机函数创建
随机生成数组需要考虑的因素:
- 数据范围:区间,整数、小数
- 数据分布:均匀分布、正态分布、指定分布
- 数据形状:size
常用的随机函数
| 函数 | 解释 |
|---|---|
| rand(d0,d1,…) | [0,1]均匀分布 |
| randint(low,high,size) | [low,high)整数均匀分布 |
| choice(a,size,replace,p) | 指定数组指定概率分布 |
| randn(d0,d1,…) | 标准正态分布 |
[0,1]均匀分布
import numpy as np
a1 = np.random.rand(4, 4)
print(a1)
》》》
[[0.77052073 0.68006097 0.07924217 0.81588193]
[0.99678088 0.3900633 0.64834814 0.62874627]
[0.15473904 0.24785919 0.75724866 0.32946373]
[0.99667109 0.12276489 0.26126159 0.36696264]] 0.7705207279750877
[a,b)整数均匀分布
import numpy as np
a = np.random.randint(2, 5, (3, 3))
print(a)
>>>
[[3 4 2]
[4 2 2]
[2 4 4]]
指定数组指定概率分布
import numpy as np
a = np.random.choice([1, 2, 3, 4], size=(3, 4), replace=True, p=[0.1, 0.2, 0.3, 0.4])
print(a)
>>>
[[2 2 3 1]
[4 4 4 3]
[1 2 1 2]]
N(0,1)标准正态分布
import numpy as np
a = np.random.randn(4, 4)
print(a)
>>>
[[-1.94776705 1.82906205 0.45956222 -1.09130521]
[ 1.52936905 -2.38259868 -1.53460647 1.95028102]
[ 0.7148325 0.40825257 0.15732141 -0.45423096]
[-0.20530692 1.34386361 1.13883039 -0.14897777]]
4、numpy——创建数组的更多相关文章
- Numpy 创建数组2
Numpy数组除了可以使用底层 ndarray 构造器来创建外,也可以同伙一下集中方式来创建. numpty.empty numpy.empty方法用来创建一个指定形状(shaoe).数据类型(dty ...
- Numpy创建数组
# 导入numpy 并赋予别名 np import numpy as np # 创建数组的常用的几种方式(列表,元组,range,arange,linspace(创建的是等差数组),zeros(全为 ...
- Numpy 创建数组
ndarray 数组除了可以使用底层 ndarray 构造器来创建外, 也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape),数据类型 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 创建数组
import numpy as np x = np.empty([3,2], dtype = int) print (x) import numpy as np # 默认为浮点数 x = np.zer ...
- numpy的学习之路(1)——创建数组以及基本运算
需要导入的包 import numpy as np import pandas 一.利用numpy创建数组 1.1创建简单数组 array =np.array([[1,2,3], [2,3,4]]) ...
- numpy学习之创建数组
1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...
- 『Numpy』内存分析_利用共享内存创建数组
引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组 ...
- NumPy 从数值范围创建数组
NumPy 从数值范围创建数组 这一章节我们将学习如何从数值范围创建数组. numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: ...
- NumPy 从已有的数组创建数组
NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...
随机推荐
- 二、Rabbit使用-初次测试
RabbitMQ提供了后台管理的页面,如果想使用该页面,需要进入安装rabbitmq的安装目录,运行以下cmd命令 rabbitmq-plugins enable rabbitmq_managemen ...
- 1、控制器运行一个Process进程,等待不等待的问题
一.区别 public static async void Execute(string para, string ffmpegPath, string timestr, string Id, str ...
- 构建LNMP+memcached服务
通过PHP页面实现对memcached服务器的数据操作,实现以下目标: - 为PHP安装memcache扩展 - 创建PHP页面,并编写PHP代码,实现对memcached的数据操作 环境:部署LNM ...
- RabbitMQ 全套
本博客代码运行环境 ErLang: ErLang_X64_22 version RabbitMQ: RabbitMQ_Server_3.7.15 version python : Python 3.7 ...
- ps:建立规则选区
在前面的内容中,我们初步接触了色彩调整工具中的“色相/饱和度”工具[CTRL U],现在我们可以很容易地改变图像的色相.将如下左图的色相改为-100,形成如下中图的效果.但是这样做有一个局限,那就是只 ...
- 反射getDeclaredFields()
public static void main(String[] args) { // 获取所有属性值 Field[] fields = People.class.getDeclaredFields( ...
- 爬虫技术:数据处理josn和pickle模块
一:json模块 json模块的作用就是讲json字符串("{"a":1,"b":1}")和python能够识别的字典进行相互转换. imp ...
- RMQ Topic
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11794927.html RMQ Topic Project Directory Maven Depen ...
- Java缓冲字符读取
public class BufferedReaderDemo { public static void main(String[] args) throws IOException { // 创建流 ...
- HDU 5952 Counting Cliques(dfs)
Counting Cliques Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...