NumPy是Python语言的一个扩充程序库,支持大量高维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。同时NumPy是机器学习必不可少的工具之一。
常用操作主要有:
1、导包
importnumpyasnp2、通过列表创建数组array()
np.array([1,2,3])#一维数组np.array([(1,2,3),(4,5,6)])#二维数组3、0/1数组zeros()、ones()
np.zeros((3,3))#3行3列np.ones((2,3,4))4、等差数组arange()reshape()
#一维等差np.arange(5)#array([0,1,2,3,4])#二维等差np.arange(6).reshape(2,3)结果:array([[0,1,2],[3,4,5]])5、单位矩阵eye()
np.eye(3)结果:array([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]])7、等间隔数组
#一维np.linspace(1,10,num=6)#array([1.,2.8,4.6,6.4,8.2,10.])8、随机数组
np.random.rand(2,3)array([[0.40360777,0.74141574,0.32018331],[0.15261484,0.18692149,0.19351765]])9、随机整数数组
np.random.randint(10,size=(2,3))#数值小于10array([[2,1,0],[2,7,5]])10、依据函数创建数组
np.fromfunction(lambdai,j:i+j,(3,6))array([[0.,1.,2.,3.,4.,5.],[1.,2.,3.,4.,5.,6.],[2.,3.,4.,5.,6.,7.]])数组运算+-*/加减乘除,对应位置元素
#矩阵乘法np.dot(A,B)#如果使用np.mat将二维数组准确定义为矩阵,就可以直接使用*完成矩阵乘法计算np.mat(A)*np.mat(B)转置:
A.T矩阵求逆:
np.linalg.inv(A)e^x
np.exp(a)平方根:
np.sqrt(a)三次方:
np.power(a,3)数组的切皮与索引一维数组:
a=np.array([1,2,3,4,5])#一维数组索引a[0],a[-1]#一维数组切片a[0:2],a[:-1]二维数组;
a=np.array([(1,2,3),(4,5,6),(7,8,9)])#索引a[0],a[-1]########切片#取第二列a[:,1]#取第2,3行a[1:3,:]数组形状形状(行列数)
a.shape更改行列数
a.reshape(2,3)#指向新对象,reshape并不改变原始数组#resize会改变原始数组a.resize(2,3)展平数组
a.ravel()垂直拼合数组,摞起来
np.vstack((a,b))水平拼合数组,挨着摆
np.hstack((a,b))分割数组:
array([[5,0,2],[4,2,4],[4,7,9]])#沿横轴分割数组np.hsplit(a,3)[array([[5],[4],[4]]),array([[0],[2],[7]]),array([[2],[4],[9]])]#沿纵轴分割数组np.vsplit(a,3)[array([[5,0,2]]),array([[4,2,4]]),array([[4,7,9]])]数组排序:
#生成示例数组a=np.array(([1,4,3],[6,2,9],[4,7,2]))#####返回每列最大值np.max(a,axis=0)#####返回每行最小值np.min(a,axis=1)#####返回每列最大值索引np.argmax(a,axis=0)#####返回每行最小值索引np.argmin(a,axis=1)数组统计:
#继续使用上面的a数组np.median(a,axis=0)#####统计数组各行的算术平均值np.mean(a,axis=1)#####统计数组各列的加权平均值np.average(a,axis=0)#####统计数组各行的方差np.var(a,axis=1)#####统计数组各列的标准偏差np.std(a,axis=0)