目录
说明
numpy 默认ndarry 的所有元素的类型是相通的 这一点与python中的list不同
如果传进来的列表中包含不同的类型 则统一为同一类型 优先级 str>float >int
1.array()函数
原型:numpy.array(object,dtype = None ,copy = True, order = None,subok = False, ndmin = 0)
作用:创建Ndarray数组对象
参数 | 说明 |
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向 A为任意方向(默认) |
subok | 默认返回一个基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
# 一维数组
print("一维数组")
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
print("----------")
# 元素类型要相同
print("元素类型要相同")
arr = np.array([1, 2, 3, 4, 4.5])
print(arr)
print("-----------")
# 多维数组
print("多维数组")
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
arr = np.array([1,2,3,4,5,6,7,8,9,0], ndmin =2)
print(arr)
print("--------")
#dtype 参数
print("#dtype 参数")
arr = np.array([1,2,3,4,5],dtype ='f')
print(arr)
一维数组
[1 2 3 4 5]
<class 'numpy.ndarray'>
----------
元素类型要相同
[1. 2. 3. 4. 4.5]
-----------
多维数组
[[1 2 3]
[4 5 6]]
[[1 2 3 4 5 6 7 8 9 0]]
--------
#dtype 参数
[1. 2. 3. 4. 5.]
结构化数据类型
[(b'sunck', 18, 0.)]
Process finished with exit code 0
2.asarray() 函数
原型:numpy.asarray(a,dtype = None, order = None)
作用;类似numpy.array 但 numpy.asary只有三个 比 numpy.array少2个
参数 | 数据 |
a | 任意形式的输入参数 可以使 列表 列表的元组 元组 元组的元组 元组的列表 多维数组 |
dtype | 数据类型 可选 |
order | 可选 有'C'和‘F’两个选项 分别代表 行有限优先和列优先 在计算机内存中的存储元素的顺序 |
import numpy as np
x = [1,2,3,4,5]
arr =np.asarray(x)
print(arr)
[1 2 3 4 5]
元组也可以
import numpy as np
arr = np.asarray([1,2,3,4,5],dtype = 'f')
print(arr)
[1. 2. 3. 4. 5.]
3.empty()函数
原型: numpy.empty(shape,dtype = float ,order = 'C')
作用:创建一个指定形状(shape)、数据类型(dtype)且为初始化的数组
参数 | 说明 |
shape | 数组形状 |
dtype | 数据类型 可选 |
order | 有“C”和“F”两个选项 分别代表 行优先 和列优先 在计算机内存中的存储元素的顺序 |
import numpy as np
arr = np.empty([3,2],dtype= int)
print(arr)
[[ 0 2043] [ 1 8] [ 24 8]]
4.zeros()函数
原型:numpy.zeros(shape , dtype = float ,order ='C')
作用:创建指定大小的数组,数组元素以0来填充
参数 | 说明 |
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于C 的行数组 或者‘F’ 用于FORTRAN的列数组 |
import numpy as np
arr = np.zeros([3,2])
print(arr)
[[0. 0.] [0. 0.] [0. 0.]]
arr = np.zeros([2,2],dtype = [('x','<i4'),('y','<f4')])
print(arr)
[[(0, 0.) (0, 0.)] [(0, 0.) (0, 0.)]]
5.Ones()函数
原型:numpy.ones(shape ,dtype = None, order ='C' )
作用:创建指定形状的数组,数组元素以1来填充
参数 | 说明 |
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于C的行数组,或者‘F’用于FORTRAN的列数组 |
import numpy as np
arr = np.ones(5)
print(arr)
[1. 1. 1. 1. 1.]
6.full()函数
原型: numpy.full(shape , fill_value, dtype = None , order = 'C')
作用:创建指定形状的数组,数组元素以fill_value来填充
参数 | 说明 |
shape | 数组形状 |
fill_value | 填充的数据 |
dtype | 数据类型,可选 |
order | ‘C’用于C的行数组,或者‘F’用于FORTRAN的列数组 |
arr = np.full(5,fill_value = 1024)
arr
array([1024, 1024, 1024, 1024, 1024])
7.eye()函数
原型:numpy.eye(N, M = None, k = 0, dtype = float, order = 'C')
作用:对角线为1 其他的位置为0
参数 | 说明 |
N | 行数量 |
M | 列数量,默认等于行数量,可选 |
dtype | 数据类型,可选 |
order | 'C'用于C的行数组,或者‘F’用于FOR TRAN的列数组 |
arr = np.eye(10,dtype= int)
arr
array([[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]])
8.arange()函数
原型:numpy.arange(start ,stop ,step ,dtype)
作用:创建数值范围并返回ndarry对象,根据start 与stop 指定的范围以及step 设定的步长
生成一个ndarray
参数 | 说明 |
start | 起始值,默认为0 |
stop | 终止值(不包含0) |
step | 步长,默认为1 |
dtype | 返回ndarry的数据类型,如果没有提供,则会使用输入数据的类型 |
arr = np.arange(1,11,1)
arr
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
9.frombuffer()函数
原型:numpy.frombuffer(buffer,dtype =float ,count =-1 ,offset =0)
作用:用于实现动态数组,接收buffer输入参数,以流的形式读入转化成ndarray对象
注意:buffer是字符串的时候, python3 默认str 是Unicode 类型 所以要专程 bytesring 在原str前加上b
参数 | 说明 |
buffer | 可以是任意对象,会以流的相识输入 |
dtype | 返回数组的数据类型,可选 |
count | 读取的数据数量 默认为-1 读取所有数据 |
offset | 读取的起始位置 默认为0 |
x = b'sunck is a good man'
arr = np.frombuffer(x,dtype ='S1')
arr
array([b's', b'u', b'n', b'c', b'k', b' ', b'i', b's', b' ', b'a', b' ', b' ', b'g', b'o', b'o', b'd', b' ', b'm', b'a', b'n'], dtype='|S1')
10.fromiter()函数
原型:numpy.fromiter(iterable ,dtype ,count =-1)
作用:从可迭代对象中建立 ndarry对象 返回一维数组
参数 | 说明 |
iterable | 可迭代对象 |
dtype | 返回数组的数据类型,可选 |
count | 读取的数据数量,默认为-1,读取所所有数据 |
x = [1,2,3,4,5]
z =iter(x)
print(z)
arr = np.fromiter(z,dtype ='f')
arr
<list_iterator object at 0x7fcb783c93d0>
Out[13]:
array([1., 2., 3., 4., 5.], dtype=float32)
11.linspace()函数
原型:numpy.linspace(start , stop , num =50 ,endpoint = True, retstep = False, dtype =None)
作用:创建一个以为数组,数组是一个等差数列构成的
参数 | 说明 |
start | 序列的起始值 |
stop | 序列的终止值,如果endpoint为true,该值包含于数列中 |
num | 要生成的等步长的样本数量,默认为50 |
endpoint | 该值为true时,数列中包含stop值,反之不包含,默认是True |
retstep | 如果为True时,生成的数组中会显示差距,反之不显示 |
dtype | ndarray的数据类型 |
arr = np.linspace(1,10,10,dtype ='i4')
arr
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=int32)
12.logspace()函数
原型:numpy.logspace(start, stop, num = 50,endpoint =True, base = 10.0 ,dype = None)
作用:创建一个于等比数列
参数 | 说明 |
start | 序列的起始值为:base**start |
stop | 序列的终止值为:base**stop. 如果endpont为true,该值包含于数列中 |
num | 要生成的步长的样本数量,默认为50 |
endpoint | 该值为ture时,数列中包含stop值,反之不包含,默认为true |
base | 对数log的地鼠 默认是10 |
dtype | ndarry的数据类型 |
arr = np.logspace(1.0,2.0,10)
arr
array([ 10. , 12.91549665, 16.68100537, 21.5443469 , 27.82559402, 35.93813664, 46.41588834, 59.94842503, 77.42636827, 100. ])
13.random.rand()
原型:rand(d0,d1,.......,dn)
作用:生成[0,1]之间的随机数
arr = np.random.rand()
arr
0.05875611774643763
生成一个有三个元素的一位数组,元素值在0到1之间
arr = np.random.rand(3)
arr
array([0.27878561, 0.72817482, 0.17982718])
生成一个二位数组,元素值在0-1之间
arr = np.random.rand(3,2)
arr
array([[0.54992584, 0.08506296], [0.60871734, 0.99821711], [0.42803026, 0.61660293]])
14.random.random()
原型:random ( size = None)
作用:生成【0,1)之间的额随机数
参数 | 说明 |
size | 元素个数 |
生成0到1 之间的随机数
arr = np.random.random()
arr
0.9840879611212288
生成一个有三个元素的一位数据,元素值在0到1 之间
arr = np.random.random(3)
arr
array([0.67369198, 0.74069211, 0.60920471])
15.random.randint()
原型:randint(low,high = None, size =None ,dtype ='1')
作用:生成随机数
参数 | 说明 |
low | 包含的下限 |
high | 不包含的上线 |
size | 元素个数 |
dtype | 元素类型 |
arr = np.random.randint(0,10,5)
arr
array([4, 3, 4, 8, 9])
16.random.randn()
原型:randn(d0,d1,....,dn)
作用:返回一个活一组样本,具有标准正态分布
标准正态分布:又称为u分布,是以0 为均值,以1为标准差的正态分布,记为N(0,1)
arr = np.random.randn()
arr
-1.1414739377078331
arr = np.random.randn(2,4)
arr
array([[-0.80908151, -0.07514705, 0.9225147 , 1.84400937], [ 0.05844825, -0.48588642, -1.59403255, 1.22214548]])
arr = np.random.randn(4,3,2)
arr
array([[[-0.7047047 , 0.67595339], [ 0.25381894, -0.30884362], [ 0.10062783, 1.67859585]], [[ 0.38110898, 1.39020551], [ 0.39189016, -0.6172444 ], [ 0.01228315, -1.27013794]], [[-0.15871977, 0.410679 ], [-0.18045481, -1.67201024], [ 0.23755189, 1.00059485]], [[-1.3966934 , -1.1147585 ], [ 0.30107808, 0.67909361], [-0.28202741, 0.31925221]]])
17.random.normal()
原型:normal(loc = 0.0 , scale = 1.0 ,size = None)
作用:生成高斯分布的概率密度随机数
参数 | 说明 |
loc | 浮点型,此概率分布的均值(对应着整个分布的中心(centre) |
scale | 浮点型,此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高) |
size | 输出的shape, 默认为None 只输出一个值 |
arr = np.random.normal(loc =1 ,scale =2 ,size =5)
arr
array([ 3.7937874 , 3.32606996, 1.30048024, -4.17174501, -0.87267875])