1. 程式人生 > 程式設計 >python numpy 矩陣堆疊例項

python numpy 矩陣堆疊例項

在實際操作中,遇到了矩陣堆疊的操作,本來想著自己寫一個函式,後來想,應該有庫函式,於是一陣找尋

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.stack((a,b)) #預設行堆疊

輸出:

array([[1,3],[4,6]])

np.vstack((a,b))

輸出:

array([[1,6]])
np.hstack((a,b))

輸出:

array([1,3,4,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,6])

以上這篇python numpy 矩陣堆疊例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。