python中,numpy(numerical python) 是 python 語言的乙個擴充套件程式庫,支援大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。
使用前需匯入numpy模組
1. 建立矩陣
1#匯入模組
2import
numpy as np34
#建立一維array物件
5 a1 = np.array([1, 3, 2]) 6#
建立乙個2 x 3 矩陣 , 輸入引數實際為列表或元組,列表或元組內部元素為單個數值78
#建立二維array物件
9 a1 = np.array([1, 3, 2], [4, 3, 6]) 10#
建立乙個2 x 3 矩陣 , 輸入引數實際為列表或元組,列表或元組內部元素又是列表或元組數值
2. 矩陣元素獲取
1import
numpy as np
23 a1 = np.array([1, 3, 2])
4 a2 = np.array([[1, 3, 2], [4, 3, 6]]) 56
#獲取矩陣的行數和列數
7 size = a1.shape() #
返回元組(1, 0)89
#獲取一維矩陣的第三個元素
10 b1 = a1[2]
111213#
獲取二維矩陣的第二行
14 b2 = a2[1] 或 b2 = a2[1, ] 或 b2 = a2[1, :]
1516
#獲取二維矩陣的第二列
17 b3 = a2[:, 1] #
注:返回值為行向量形式
1819
#獲取二維矩陣的第1,2行的第3,4兩列
20 b4 = a2[0:2, 2:4]
212223#
獲取二維矩陣的第二行第三個元素
24 b3 = a2[1, 2]
3. 按條件擷取
按條件擷取其實是在(方括號)中傳入自身的布林語句.
1import
numpy as np
23 a3 = np.array([[1, 3, 2], [4, 3, 6], [7,5,3]]) 45
6 c1 = a3 > 2
7print
(c1)89
#返回布林值矩陣
10[[false true false]
11[ true true true]
12[ true true true]]
1314
1516 c2 = a3[a3 > 2]
17print
(c2)
1819
#返回滿足條件的一維列表
20 [3 4 3 6 7 5 3]
4. 矩陣合併
1import
numpy as np
23 a1 = np.array([[7, 5, 2], [4, 2, 5]])
4 a2 = np.array([[1, 3, 2], [4, 3, 6]]) 56
#按行合併
7 h = np.hstack([a1, a2]) 或 h =np.hstack((a1, a2))
8print
(h)9#返回
10 [[7 5 2 1 3 2]
11 [4 2 5 4 3 6]]
1213
#按列合併
14 v = np.vstack([a1, a2]) 或 h =np.vstack((a1, a2))
15print
(v)16#返回
17 [[7 5 2]
18 [4 2 5]
19 [1 3 2]
20 [4 3 6]]
212223#
矩陣合併也可用concatenate方法
24 np.concatenate( (a1,a2), axis=0 ) 等價於 np.vstack( (a1,a2) )
25 np.concatenate( (a1,a2), axis=1 ) 等價於 np.hstack( (a1,a2) )
5. 通過函式常見矩陣
1import
numpy as np23
#通過linspace方法建立等差數列,首位為2,末位為10,包含5個元素的等差數列
4 a1 = np.linspace(2, 10, 5) #
返回[ 2. 4. 6. 8. 10.]56
#通過logspace方法建立等比數列,首位為10^2, 末位為10^5, 包含4個元素的等比數列
7 a2 = np.logspace(2, 5, 4) #
返回[ 100. 1000. 10000. 100000.]89
#通過ones方法建立全1矩陣
10 a3 = np.ones(3,4) #
建立3*4的全 1 矩陣
1112
#通過zeros方法建立全0矩陣
13 a3 = np.zeros(3,4) #
建立3*4的全 0 矩陣
1415
#通過eye方法建立單位矩陣
16 a3 = np.eye(3,4) #
建立3*4的單位矩陣
1718
#通過fromstring方法將字串轉換成array物件,可以將字元批量轉換成ascii碼
19 a = "
abcdef
"20 b = np.fromstring(a,dtype=np.int8) #
因為乙個字元為8為,所以指定dtype為np.int8
21print(b) #
返回 [ 97 98 99 100 101 102]
2223
#通過fromfunction方法根據行號和列號生成矩陣
24def
f1(i,j):
25return i+j
26 a = np.fromfunction(func,(5,6)) 27#
第乙個引數為指定函式,第二個引數為列表list或元組tuple,說明矩陣的大小
28print
(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)
python numpy模組學習(超級基礎)
import numpy as np 讀取txt檔案 txt np.genfromtxt test.txt delimiter dtype str,encoding utf 8 生成矩陣 vector np.array 5,10,23,45,2 一維 vector np.array 5,10,23,...
python numpy陣列拼接方法介紹
陣列拼接方法一 示例1 import numpy as np a np.array 1,2,5 b np.array 10,12,15 a list list a b list list b a list.extend b list a list 1,2,5,10,12,15 a np.array ...
用Python NumPy模組實現神經網路
首先,你要保證掌握一定的python技能,讓我們檢測一下吧,如果你能回答如下問題,就可以輕鬆閱讀本文,如果不行,那先學習 複習 一下python吧!我要公布其中一些的答案 python中的類由 init 函式 初始化 與其他功能函式組成。python程式的標準格式如下 import class de...