numpy的一些用法

时间:2023-01-03 21:18:45

numpy是python中矩阵运算的模块。

1.numpy.genfromtxt()可以打开一个文件,并存储为ndarray的类型,delimiter参数指明分隔符,dtype参数指明该以什么类型存储。help()函数可以查python的函数具体信息。

numpy的一些用法numpy的一些用法

2.numpy.array()可以生成一个矩阵. shape属性是矩阵的行和列数

 

numpy的一些用法numpy的一些用法

​3.ndarray类型中,所有元素类型应该一样

numpy的一些用法numpy的一些用法numpy的一些用法

 

4.矩阵索引的运用以及将布尔向量作为索引

numpy的一些用法

 5.numpy的布尔向量的逻辑运算。

numpy的一些用法

 

6.函数astype()可以转换矩阵中的元素类型;sum函数对矩阵元素求和,当axis = 0时对列求和,当axis = 1时对行求和。

numpy的一些用法

 

7.矩阵的加减乘除。

  a+b的结果是a和b的对应元素相加,a+1是a的每个元素加1。

  a**2是a的每个元素取平方,np.sin(a)是对a每个元素取正弦函数。

  a*b是a,b中对应元素相乘,a.dot(b)(或者np.dot(a,b))是矩阵相乘。

numpy的一些用法

numpy的一些用法

 

8.矩阵的初始化。

  arange(x):生成一个向量,元素为从0到x-1

  arange(start, end, step), 生成一个向量,第一个元素是start,每个元素是前一个元素加上step,最后一个元素是小于end的最大值(不能等于end)

  reshap((x,y)),生成形如x*y的矩阵。

  linspace(start, end, n), 生成一个向量,要求向量中有n个元素,第一个元素为start,最后一个元素为end。

  zeros((x,y)) 生成一个形如x*y的0矩阵。

  ones((x, y))生成一个形如x*y的元素为1的矩阵。

  np.random.random((x, y))生成一个x*y的矩阵,每个元素都是0到1之间的随机数。

(左图为代码,右图为运行结果)

numpy的一些用法

numpy的一些用法

9.取整函数,矩阵与向量的变换。

  np.around(a),四舍五入取整

  np.floor(a), 向下取整

  np.ceil(a), 向上取整

  b = a.reshape((x, y)), 将向量a变成x*y的矩阵

  a = b.ravel(), 将矩阵b拉成向量。

  c = b.T, 矩阵c是矩阵b的转置。

(左图为代码,右图为运行结果)

numpy的一些用法

 

numpy的一些用法

10.矩阵的拼接

  np.hstack((a, b)):  水平拼接

  np.vstack((a, b)): 竖直拼接

  np.hsplit(a, (x1, x2,  x3......)): 对矩阵a进行水平分割,(x1, x2,  x3......)是切口,xi表示将x(i-1)于xi列之间分割开

  np.vsplit(a, (x1, x2,  x3......)): 对矩阵a进行垂直分割,(x1, x2,  x3......)是切口,xi表示将x(i-1)于xi行之间分割开

(左图为代码,右图为运行结果)

numpy的一些用法

 

numpy的一些用法

 

11.矩阵排序

  b = np.sort(a, axis = 0):对矩阵a的每一列进行从小到大排序,然后组合成新矩阵b

  b = np.sort(a, axis = 1):对矩阵a的每一行进行从小到大排序,然后组合成新矩阵b

  index = np.argsort(a): 按照元素从小到大的顺序依次返回a中对应元素的索引。

1 import numpy as np
2 
3 a = np.around(10*np.random.random((3, 3)))
4 print(a)
5 b = np.sort(a, axis=0)
6 print(b)
7 c = np.sort(a, axis=1)
8 print(c)

  运行结果如下

numpy的一些用法

12. argmax函数

  b = np.argmax(a, axis = 0)返回的是一个列表,b[i]是矩阵a的第i列向量的最大元素所在的行的索引

  b = np.argmax(a, axis = 0)返回的是一个列表,b[i]是矩阵a的第i行向量的最大元素所在的列的索引

 1 import numpy as np
 2 
 3 a = np.around(10*np.random.random((3, 3)))
 4 print(a)
 5 b = np.argmax(a, axis=0)
 6 print(b)
 7 print(a[b, range(a.shape[1])])
 8 c = np.argmax(a, axis=1)
 9 print(c)
10 print(a[range(a.shape[0]), c])

  运行结果如下

numpy的一些用法

13. tile函数

  np.tile(a, (x, y))将矩阵或向量a在水平方向扩展x倍,在竖直方向扩展y倍,最后是一个二维矩阵。

1 import numpy as np
2 
3 a = np.array([1,2,3])
4 b = np.tile(a, (2, 3))
5 c = np.array([[1,2],
6               [3,4]])
7 d = np.tile(c, (2,3))
8 print(b)
9 print(d)

运行结果如下

numpy的一些用法