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

 

posted @ 2020-07-25 13:13  Chenjin2018  阅读(277)  评论(0编辑  收藏  举报