在實際操作中,遇到了矩陣堆疊的操作,本來想著自己寫一個函數,后來想,應該有庫函數,于是一陣找尋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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的時候,結果如下
1
2
3
4
5
6
7
|
np.stack((a,b),axis = 1 ) 輸出: array([[ 1 , 4 ], [ 2 , 5 ], [ 3 , 6 ]]) |
從效果看,相當于按照原來a的第二維度,也就是列,一列一列的取出來,按行拼成了一個矩陣。
那么,hstack()的效果能不能利用stack()實現呢?我這里是沒有探索出來,歡迎知道的童靴指教,不過hstack()的效果其實和concatenate是一樣的
1
2
3
|
np.concatenate((a,b)) 輸出: array([ 1 , 2 , 3 , 4 , 5 , 6 ]) |
以上這篇python numpy 矩陣堆疊實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/m0_37052320/article/details/79072402