数组
array是用来存储同类型的序列数据
创建数组
一维数组
1 import numpy as np
1 data=[1,2,3,4]
1 array1=np.array(data) 2 array1
array([1, 2, 3, 4])
二维数组
1 np.zeros((4,3)) 2 #创建值为0的4行3列数组
array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
三维数组
1 np.ones((4,3,2))#创建值为1的4行3列2通道数组
array([[[1., 1.], [1., 1.], [1., 1.]], [[1., 1.], [1., 1.], [1., 1.]], [[1., 1.], [1., 1.], [1., 1.]], [[1., 1.], [1., 1.], [1., 1.]]])
1 np.empty((3,3,2))#创建一个没有任何价值的数组
array([[[2.12831349e-314, 6.92945393e-310], [2.12831396e-314, 6.92945488e-310], [2.12831349e-314, 6.92945487e-310]], [[2.12831396e-314, 6.92945488e-310], [2.12831349e-314, 6.92945412e-310], [2.12831396e-314, 6.92945488e-310]], [[2.12831349e-314, 6.92945488e-310], [2.12831349e-314, 6.92945488e-310], [6.92945513e-310, 6.92945411e-310]]])
shape的改变
1 t1=np.ones((5,3,2))
1 t1.T 2 #转置即5,3,2变为2,3,5
array([[[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]], [[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]]])
1 t1.reshape(5,6)
array([[1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.]])
数据类型
dtype判断数据类型
1 t1.dtype
dtype('float64')
astype转换数据类型
1 t1.astype("int").dtype
dtype('int64')
随机数
1 np.random.rand(3,2,3) 2 #产生随机数,参数为维度
array([[[0.05824563, 0.8639261 , 0.27726788], [0.00337193, 0.26574333, 0.73263505]], [[0.20499056, 0.20134696, 0.48987449], [0.30061665, 0.075293 , 0.78492684]], [[0.24319275, 0.05216592, 0.18046824], [0.21499831, 0.88896836, 0.25639316]]])
1 np.random.randn(3,2,3) 2 #特殊的rand,只是产生的数据为标准正态分布
array([[[-0.19575037, -0.40615904, -0.35951952], [-0.17216237, -0.29834999, 0.39763171]], [[-0.85756453, -0.59599872, -0.64539564], [-0.43278405, 0.40933633, 1.78710403]], [[ 0.77254905, 0.3820515 , -1.40689169], [-1.29824478, 0.78749379, -0.29250324]]])
1 np.random.randint(8,15,size=(3,4)) 2 #第一个参数随机数不小于的最小值,第二参数最大值,size填维度
array([[10, 11, 13, 13], [11, 11, 12, 11], [ 8, 9, 11, 12]])
1 np.random.random((3,4)) 2 #产生0到1的随机数,维度需要用tuple括起来
array([[0.56382065, 0.02958389, 0.43581952, 0.38992685], [0.62231146, 0.55219146, 0.9801636 , 0.90730928], [0.33296925, 0.76918661, 0.55217904, 0.97072233]])
索引
和list的所以基本一致
1 t2=np.random.randint(2,8,size=(5,6)) 2 t2
array([[4, 6, 6, 2, 5, 2], [5, 6, 2, 6, 5, 5], [3, 5, 3, 4, 5, 2], [5, 2, 3, 2, 3, 6], [3, 2, 2, 7, 2, 7]])
1 t2[1:4,[2,3]]
array([[2, 6], [3, 4], [3, 2]])
1 t2[[2,3],[2,3]]
array([3, 2])
常用函数
1 np.unique(t2) # 去重函数
array([2, 3, 4, 5, 6, 7])
1 sum(t2) # 求各列的和
array([20, 22, 19, 24, 23, 22])
1 sum(t2[0]) # 求第0行的和
24
1 sum(t2[:,0]) # 求第0列的和
20
1 np.arange(10)#数组版的range
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
还有max,min,mean,std等函数