Numpy常用操作
numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外,也针对数组运算提供大量的数学函数库。
numpy常用的操作:
ndarray.ndim:秩,即轴的数量或维度的数量
ndarray.size:数组元素的总个数
ndarray.dtype:ndarray对象的元素类型
ndarray.itemsize:ndarray对象中每个元素的大小,以字节为单位
ndarray.random:产生随机数
import numpy as np
a = np.random.rand(3,3) #随机生成一个3行3列的矩阵
print(a.ndim) #输出矩阵的维度,结果为2
print(a.dtype) #输出矩阵中元素的类型,结果为float64
print(a.size) #输出矩阵中元素个数,结果为9
shape:查看是一个几行几列的数组
reshape:对数组形状进行改变
import numpy as np
a = np.array([[1,2,3],[4,5,6]]) #创建一个两行三列的矩阵
np.shape(a) #查看矩阵a的形状
np.reshape(a,[3,2]) #将矩阵a改为三行两列
b = np.arange(12).reshape(3,4)
创建数组的时候可以指定元素类型
a = np.array([1,2,3],dtype=np.int)
zeros创建全0的矩阵,ones创建全1的矩阵,eye创建单位矩阵
import numpy as np
a = np.zeros([3,3])
b = np.ones([3,3],dtype=int)
c = np.eye(3,3)
linspace:在指定间隔内返回均匀的数字(即返回等差数组)
import numpy as np
np.linspace(1,10,10) #在1-10之间打印10个均匀的数
np.linspace(1,10,10,endpoint=False,retstep=True) #在1-10之间打印10个均匀的数,不包括10,并且打印步长
A*B:两个矩阵对应位置相乘,dot才是矩阵的乘法
import numpy as np
A = np.ones([3,3])
B = np.eye(3,3)
a = A*B
b = np.dot(A,B)
参数axis=1:对行进行操作,axis=0:对列进行操作
import numpy as np
a = np.arange(6).reshape(3,2)
b = np.sum(a,axis=0) #对a矩阵的列求和
c = np.sum(a,axis=1) #对a矩阵的行求和
argmin:求最小值的索引,argmax:求最大值的索引,mean(average):求矩阵的平均值
import numpy as np
a = np.arange(2,14).reshape(3,4)
print(np.argmin(a))
print(np.argmax(a))
print(np.mean(a))
print(np.average(a))
矩阵的合并:hstack(左右合并),vstack(上下合并)
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))
d = np.hstack((a,b))
矩阵的拆分:vsplit(横向拆分),hsplit(纵向拆分)
import numpy as np
a = np.arange(12).reshape(3,4)
b = np.vsplit(a,3) #将a矩阵按行拆分成3行
c = np.hsplit(a,2) #将a矩阵按列拆分成2列
numpy也可以采用索引取数据
import numpy as np
a = np.arange(3,15).reshape(3,4)
print(a[2]) #取出索引为2的行的全部元素,即取第三行的全部元素
print(a[1,1]) #取行、列索引都为1的元素,即二行二列的元素。也可以写成:print(a[1][1])
矩阵的转置
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.transpose(a) #也可以写成:c = a.T