Python_numpy模塊介紹


   Python中,NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

 使用前需導入numpy模塊

 

1.  創建矩陣

 1 # 導入模塊
 2 import numpy as np
 3 
 4 # 創建一維array對象
 5 a1 = np.array([1, 3, 2])   
 6         # 創建一個2 x 3 矩陣 , 輸入參數實際為列表或元組,列表或元組內部元素為單個數值
 7 
 8 # 創建二維array對象
 9 a1 = np.array([1, 3, 2], [4, 3, 6])   
10         # 創建一個2 x 3 矩陣 , 輸入參數實際為列表或元組,列表或元組內部元素又是列表或元組數值

 

 

2. 矩陣元素獲取

 1 import numpy as np
 2 
 3 a1 = np.array([1, 3, 2])   
 4 a2 = np.array([[1, 3, 2], [4, 3, 6]])   
 5 
 6 # 獲取矩陣的行數和列數
 7 size = a1.shape()  # 返回元組(1, 0)
 8 
 9 # 獲取一維矩陣的第三個元素
10 b1 = a1[2]  
11 
12 
13 # 獲取二維矩陣的第二行
14 b2 = a2[1]   或 b2 = a2[1, ]  或 b2 = a2[1, :] 
15 
16 # 獲取二維矩陣的第二列
17 b3 = a2[:, 1]   # 注:返回值為行向量形式
18 
19 # 獲取二維矩陣的第1,2行的第3,4兩列
20 b4 = a2[0:2, 2:4]
21 
22 
23 # 獲取二維矩陣的第二行第三個元素
24 b3 = a2[1, 2]

 

3. 按條件截取

按條件截取其實是在[](方括號)中傳入自身的布爾語句.

 1 import numpy as np
 2  
 3 a3 = np.array([[1, 3, 2], [4, 3, 6], [7,5,3]])  
 4 
 5 
 6 c1 = a3 > 2  
 7 print(c1)
 8 
 9 # 返回布爾值矩陣
10 [[False  True False]
11  [ True  True  True]
12  [ True  True  True]]
13 
14 
15 
16 c2 = a3[a3 > 2]
17 print(c2)
18 
19 # 返回滿足條件的一維列表
20 [3 4 3 6 7 5 3]

 

4. 矩陣合並

 1 import numpy as np
 2 
 3 a1 = np.array([[7, 5, 2], [4, 2, 5]])   
 4 a2 = np.array([[1, 3, 2], [4, 3, 6]])   
 5 
 6 # 按行合並
 7 h = np.hstack([a1, a2])  或 h = np.hstack((a1, a2)) 
 8 print(h)
 9 # 返回
10 [[7 5 2 1 3 2]
11  [4 2 5 4 3 6]]
12 
13 # 按列合並
14 v = np.vstack([a1, a2])  或 h = np.vstack((a1, a2)) 
15 print(v)
16 # 返回
17 [[7 5 2]
18  [4 2 5]
19  [1 3 2]
20  [4 3 6]]
21 
22 
23 # 矩陣合並也可用concatenate方法
24 np.concatenate( (a1,a2), axis=0 ) 等價於 np.vstack( (a1,a2) )
25 np.concatenate( (a1,a2), axis=1 ) 等價於 np.hstack( (a1,a2) )

 

5.  通過函數常見矩陣

 1 import numpy as np
 2 
 3 # 通過linspace方法創建等差數列,首位為2,末位為10,包含5個元素的等差數列
 4 a1 = np.linspace(2, 10, 5)    # 返回[  2.   4.   6.   8.  10.]
 5 
 6 # 通過logspace方法創建等比數列,首位為10^2, 末位為10^5, 包含4個元素的等比數列
 7 a2 = np.logspace(2, 5, 4)      # 返回[    100.    1000.   10000.  100000.]
 8 
 9 # 通過ones方法創建全1矩陣
10 a3 = np.ones(3,4)    # 創建3*4的全 1 矩陣
11 
12 # 通過zeros方法創建全0矩陣
13 a3 = np.zeros(3,4)    # 創建3*4的全 0 矩陣
14 
15 # 通過eye方法創建單位矩陣
16 a3 = np.eye(3,4)    # 創建3*4的單位矩陣
17 
18 # 通過fromstring方法將字符串轉換成array對象,可以將字符批量轉換成ASCII碼
19 a = "abcdef"
20 b = np.fromstring(a,dtype=np.int8) # 因為一個字符為8為,所以指定dtype為np.int8
21 print(b) # 返回 [ 97  98  99 100 101 102]
22 
23 # 通過fromfunction方法根據行號和列號生成矩陣
24 def f1(i,j): 
25     return i+j
26 a = np.fromfunction(func,(5,6)) 
27 # 第一個參數為指定函數,第二個參數為列表list或元組tuple,說明矩陣的大小
28 print(a)
29 # 返回
30 [[ 0.  1.  2.  3.  4.  5.]
31  [ 1.  2.  3.  4.  5.  6.]
32  [ 2.  3.  4.  5.  6.  7.]
33  [ 3.  4.  5.  6.  7.  8.]
34  [ 4.  5.  6.  7.  8.  9.]]

 

6. 矩陣運算

對每個元素的運算

矩陣函數    說明
np.sin(a) 對矩陣a中的每個元素取正弦, sin(x)
np.cos(a)  對矩陣a中的每個元素取余弦, cos(x)
np.tan(a)  對矩陣a中的每個元素取正切, tan(x)
np.arcsin(a)  對矩陣a中的每個元素取反正弦, arsin(x)
np.arccos(a)  對矩陣a中的每個元素取反余弦, arcos(x)
np.arctan(a)  對矩陣a中的每個元素取反正切, artan(x)
np.sqrt(a)  對矩陣a中的每個元素開方, sqrt(x)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM