以下是关于numpy数组生成、计算、索引、统计、保存的常用api备忘。
np.arange(0,10) 生成[0,10)的顺序矩阵
np.zeros((3,2)) 生成尺寸为(3,2)的全0矩阵
np.random.rand(4,3) # 0~1的随机小数矩阵,4行3列
np.random.randint(0, 10, size=5) # 随机数(5个):第1个起始;第2个结束(不包括);第3个随机数个数
np.random.randint(0, 10, size=(2, 5)) # 随机数组/矩阵(5个):第1个起始;第2个结束(不包括);第3个随机数个数(行,列)
np.random.seed(100) # 随机数种子,种子不变,每次生成的随机数也不变
rs = np.random.RandomState(100)设置随机数种子,然后通过rs.rand(4)等方法来使用,生成四个随机数
np.random.random(5) # 随机数(float型),5个
np.random.random((3, 5)) # 随机数组/矩阵(float型),(3行,5列)
np.random.normal(size=5) # 正态分布的5个随机数
np.random.normal(size=(3, 5)) # 正态分布的5个随机数组
np.pad(a,((3,2),(2,3)),'constant',constant_values = (0,0))
在a第0个维度,前面填3个0,后面填2个0;在a第1个维度,前面填2个0,后面填3个0array([[95, 96],
[97, 98]])
array([[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 95, 96, 0, 0, 0],
[ 0, 0, 97, 98, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0]])np.argwhere(condition) 返回满足条件的索引np.concatenate(x1,x2,axis=0)数组拼接a*b或np.multiply(a,b)a@b 或者np.dot(a,b)np.kron(a,b)data.T 数组转置data.I 矩阵求逆np.tile(data, repeat) 矩阵复制, data为要实施复制的矩阵,repeat为各个维度分别重复的次数,例如:t = np.array([1,2,3])
np.tile(t, [3,1])
Out:
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])a.argmax(axis=0) 求每一行或每一列的最大值的索引np.argsort(R, axis=1) 将array数组进行排序并获取排序后的索引(从小到大)a[:,-3:] 获取数组每行的倒数前三位np.sum( ndarray == 1 ) 查询array中1的个数np.mean(t,axis=0) 对列求平均>>> a = np.array([[1, 2], [3, 4]])
>>> a
array([[1, 2],
[3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0) # axis=0,计算每一列的均值
array([ 2., 3.])
>>> np.mean(a, axis=1) # 计算每一行的均值
array([ 1.5, 3.5])numpy.save("filename.npy",a)
利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用
numpy.load("filename")来读取。
numpy.savetxt("filename.txt",a)
b = numpy.loadtxt("filename.txt")
用于处理一维和二维数组
import os
if not os.path.isdir(dir_name):
os.makedirs(dir_name)