numpy的一些用法

numpy是python中矩陣運算的模塊。python

1.numpy.genfromtxt()能夠打開一個文件,並存儲爲ndarray的類型,delimiter參數指明分隔符,dtype參數指明該以什麼類型存儲。help()函數能夠查python的函數具體信息。app

2.numpy.array()能夠生成一個矩陣. shape屬性是矩陣的行和列數dom

 

​3.ndarray類型中,全部元素類型應該同樣函數

 

4.矩陣索引的運用以及將布爾向量做爲索引spa

 5.numpy的布爾向量的邏輯運算。3d

 

6.函數astype()能夠轉換矩陣中的元素類型;sum函數對矩陣元素求和,當axis = 0時對列求和,當axis = 1時對行求和。code

 

7.矩陣的加減乘除。blog

  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))是矩陣相乘。

 

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之間的隨機數。

(左圖爲代碼,右圖爲運行結果)

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的轉置。

(左圖爲代碼,右圖爲運行結果)

 

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行之間分割開

(左圖爲代碼,右圖爲運行結果)

 

 

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)

  運行結果以下

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])

  運行結果以下

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)

運行結果以下

相關文章
相關標籤/搜索