Numpy常用操作

数组生成:

  • np.arange(0,10) 生成[0,10)的顺序矩阵

  • 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.concatenate(x1,x2,axis=0)数组拼接
  • 按元素相乘:a*bnp.multiply(a,b)
  • 矩阵乘法:a@b 或者np.dot(a,b)
  • 矩阵的张量积:np.kron(a,b)
  • data.T 数组转置
  • data.I 矩阵求逆
  • 矩阵插入一行或一列
  • np.tile(data, repeat) 矩阵复制, data为要实施复制的矩阵,repeat为各个维度分别重复的次数,例如:
1
2
3
4
5
6
t = np.array([1,2,3])
np.tile(t, [3,1])
Out:
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])

数组选择

  • np.argwhere(condition) 返回满足条件的索引

数组统计:

  • a.argmax(axis=0) 求每一行或每一列的最大值的索引
  • np.argsort(R, axis=1) 将array数组进行排序并获取排序后的索引(从小到大)
  • a[:,-3:] 获取数组每行的倒数前三位
  • np.sum( ndarray == 1 ) 查询array中1的个数
  • np.mean(t,axis=0) 对列求平均
1
2
3
4
5
6
7
8
9
10
>>> 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])

数组保存:

  1. numpy.save("filename.npy",a)

利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用

numpy.load("filename")来读取。

  1. numpy.savetxt("filename.txt",a)

b = numpy.loadtxt("filename.txt")

用于处理一维和二维数组

  • 保存目录不存在的话创建目录:
1
2
3
import os
if not os.path.isdir(dir_name):
os.makedirs(dir_name)

请我喝杯咖啡吧~

支付宝
微信