在實際操作中,遇到了矩陣堆疊的操作,本來想著自己寫乙個函式,後來想,應該有庫函式,於是一陣找尋
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.stack((a,b)) #預設行堆疊
輸出:array([[1, 2, 3],
[4, 5, 6]])
np.vstack((a, b))
輸出:array([[1, 2, 3],
[4, 5, 6]])
np.hstack((a, b))
輸出:array([1, 2, 3, 4, 5, 6])
簡單解釋一下上面的**:其實主要是乙個函式,stack(),這個函式其實包含了各種堆疊方式,我們上面的例子是針對二維矩陣的,其實我們大部分時候的操作都是針對二維矩陣的,為了方便,所以又定義了兩個函式vstack()
進行垂直的堆疊(vertically ),hstack()
進行水平堆疊(horizontally)
函式stack()
有個引數,axis,可以設定堆疊的維度,預設是0,其實和vstack()
是乙個效果,當設定成1的時候,結果如下
np.stack((a,b),axis=1)
輸出:array([[1, 4],
[2, 5],
[3, 6]])
從效果看,相當於按照原來a的第二維度,也就是列,一列一列的取出來,按行拼成了乙個矩陣。
那麼,hstack()
的效果能不能利用stack()
實現呢?我這裡是沒有探索出來,歡迎知道的童靴指教,不過hstack()
的效果其實和concatenate
是一樣的
np.concatenate((a,b))
輸出:array
([1, 2, 3, 4, 5, 6])
python numpy 矩陣堆疊例項
在實際操作中,遇到了矩陣堆疊的操作,本來想著自己寫乙個函式,後來想,應該有庫函式,於是一陣找尋 import numpy as np a np.array 1,2,3 b np.array 4,5,6 np.stack a,b 預設行堆疊 輸出 array 1,2,3 4,5,6 irvijus n...
python numpy 矩陣運算
轉置np.transpose x 乘np.dot x,y a.dot b dot c 逆np.linalg.inv x 轉為1維 a.flatten 除 就是乘矩陣的逆a b a.dot np.linalg.inv b 刪除一列axis 1 行axis 0 np.delete t1,j,axis 0...
python numpy包 矩陣運算
下面簡要介紹python和matlab處理數學問題的幾個不同點。1.matlab的基本是矩陣,而numpy的基本型別是多為陣列,把matrix看做是array的子類。2.matlab的索引從1開始,而numpy從0開始。1.建立矩陣 a1 np.array 1,2,3 dtype int 建立乙個一...