numpy是python的乙個科學計算庫,提供矩陣運算的功能。
import numpy as np #一般都是用numpy的別名來進行操作
np.array((1.2,2,3,4), dtype=np.int32)
這裡是強制定義了np裡面的矩陣資料型別,是讓其為int32位,如果其中有小數的,都會轉換成整數。
arr1 = np.array([1,2,3,4,5,6,6,6])
print(arr1.reshape(2,4))
reshape完之後,就變成矩陣了
arr1.shape()則顯示矩陣的情況,就是是幾維矩陣,矩陣的長度如何。
arr1.dtype顯示arr1矩陣的資料的型別,這裡上邊定義的是int型別的
import numpy asnpprint(np.array((
1.2,2,3,4.1), dtype=np.int32))
arr1 = np.array([1,2,3,4,5,6,6,6
])print(arr1.reshape(
2,4))
print(arr1.dtype)
#起始值為第乙個引數,終點值為第二個引數,然後第三個引數是把這個區間的數,分為多少,這裡的輸出結果是從1到10
矩陣之間是可以運算的,但是要注意的是什麼?就是矩陣的長度得是對應的。比如二維對二維,並且相對應運算行的長度得相同
import numpy asnpa = np.array([[1,2,3],[2,3,4
]])b = np.array([[2,3,4],[2,3,4
]])print(a -b)
"""結果輸出:[[-1 -1 -1]
[ 000]]"""
行乘列得出結果,看輸出結果中的9可以看出,是a的第一行乘以b的第一列。
importnumpy as np
a = np.array([[1,2,3],[2,3,4],[1,1,1]])
b = np.array([[2,3,4],[2,3,4],[1,1,1]])
(np.dot(a,b))
"""輸出結果[[ 9 12 15]
[14 19 24]
[ 5 7 9]]
"""
np.floor(矩陣)向下取整,就是傳進來的矩陣,如果是3.5,就會變成3這樣子
importnumpy as np
a = np.array([[1,2,3],[2,3,4],[1,1,1]])
(a.r**el())
"""輸出結果:[1 2 3 2 3 4 1 1 1]
"""
vstack和hstack,我發現只能憑藉相同大小的,就是如果矩陣不等長的話則按照斷的來拼接。像矩陣a的第二行,有五個數,但是最終只拼接了三個
importnumpy as np
a = np.array([[1,2,3],[2,3,4,5,6],[1,1,1]])
a = np.array([[1,2,3],[2,3,4],[1,1,1]])
(np.hstack((a,b)))
(np.vstack((a,b)))
"""輸出結果:[[1 2 3 2 3 4]
[2 3 4 2 3 4]
[1 1 1 1 1 1]]
[[1 2 3]
[2 3 4]
[1 1 1]
[2 3 4]
[2 3 4]
[1 1 1]]
"""
按照行來切,這裡在第三行和第四行切了,因此,產生了三個矩陣
a = np.floor(10*np.random.random((2,12))) #按行切print
(a)print(np.hsplit(a,(3,4)))
"""結果:[[ 0. 2. 0. 3. 3. 1. 5. 9. 1. 5. 5. 9.]
[ 5. 5. 1. 7. 3. 0. 8. 3. 4. 7. 0. 7.]]
[array([[ 0., 2., 0.],
[ 5., 5., 1.]]), array([[ 3.],
[ 7.]]), array([[ 3., 1., 5., 9., 1., 5., 5., 9.],
[ 3., 0., 8., 3., 4., 7., 0., 7.]])]
"""
按列來分,想切幾刀就切幾刀,切多少下,只要沒超過它的列數,就可以切。
importnumpy as np
a = np.floor(10*np.random.random((12,2)))
(a)print(np.vsplit(a,3))
"""執行結果[[ 7. 5.]
[ 4. 9.]
[ 9. 9.]
[ 9. 7.]
[ 8. 6.]
[ 4. 4.]
[ 6. 7.]
[ 3. 2.]
[ 8. 1.]
[ 4. 2.]
[ 2. 5.]
[ 0. 0.]]
[array([[ 7., 5.],
[ 4., 9.],
[ 9., 9.],
[ 9., 7.]]), array([[ 8., 6.],
[ 4., 4.],
[ 6., 7.],
[ 3., 2.]]), array([[ 8., 1.],
[ 4., 2.],
[ 2., 5.],
[ 0., 0.]])]
"""
至於訪問切出來的矩陣,很簡單,就是參考陣列,既然切成了多個矩陣,那就是按照不同的下標來訪問咯,比如上邊的結果想拿到第乙個陣列的第乙個數字,則只要賦值了之後,用
賦值的變數[0][0][0]就可以訪問到了,注意陣列巢狀的情況。
numpy用法總結
python的乙個開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比python自身的巢狀列表 nested list structure 結構要高效的多 該結構也可以用來表示矩陣 matrix 功能 返回數字或陣列的絕對值。若輸入為陣列,則將陣列各元素取絕對值,然後返回取絕對值後的陣列 ...
numpy方法總結
numpy是乙個用python實現的科學計算的擴充套件程式庫,包括 numpy陣列間的基本運算是一對一的,基本就是加減乘除。陣列運算要求兩個資料的形狀相同,當形狀不同的時候,就會自動觸發廣播機制。陣列廣播 當兩個形狀不一樣的陣列進行相加,自動觸發廣播機制。下邊看幾個廣播計算的示意圖 當某乙個陣列的維...
numpy學習總結
匯入 import numpy as np 生成矩陣 array np.array 1,2,3 4,5,6 矩陣維度 array.ndim 矩陣形狀 array.shape 矩陣大小 array.size 矩陣元素型別 array.dtype a np.array 1,2,3 dtype np.in...