2017-06-03 153 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

相关问题