2017-06-03 159 views
1

我有三個矩陣,R,B,G,它們的大小都相同,比如說m * n。我想他們三個都疊加在一起成爲一個新的矩陣(3 * M * N或M * N * 3),如在Matlab中實現的不同的信道:Python:如何將多個陣列堆疊在一起沿新軸

A(:,:,1) = R 
A(:,:,2) = G 
A(:,:,3) = B 

如何有效地實現這一目標蟒蛇?

+0

是否使用了特定軟件包(如NumPy的)爲您的矩陣,或他們只是純粹的名單? – Alden

+0

@Alden:是的。我知道numpy具有堆棧函數,但它們似乎只適用於兩個矩陣 – jingweimo

回答

4

numpy.stack應爲三個數組工作:

numpy.stack((R, G, B)) 

例如,

a = numpy.array([[1,2],[2,1]]) 
b = numpy.array([[3,3],[4,4]]) 
c = numpy.array([[5,6],[7,8]]) 
print(numpy.stack((a, b, c))) 

打印

[[[1 2] 
    [2 1]] 

[[3 3] 
    [4 4]] 

[[5 6] 
    [7 8]]] 
+0

TypeError:stack()至多需要2個參數(給出3個參數) – jingweimo

+1

確保您傳遞'(R,G,B)'(一個參數,一個包含三個數組的數組),而不是'R,G,B'(三個數組作爲單獨的參數)。 – Alden

+0

你是對的!謝謝 – jingweimo

相關問題