numpy是python中矩陣運算的模塊。python
1.numpy.genfromtxt()能夠打開一個文件,並存儲爲ndarray的類型,delimiter參數指明分隔符,dtype參數指明該以什麼類型存儲。help()函數能夠查python的函數具體信息。app
dom
函數
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)
運行結果以下