Python:如何沿新轴堆叠多个数组

时间:2017-06-03 01:09:51

标签: python matrix

我有三个矩阵,R,B,G,它们的大小都相同,比如m * n。我想将它们中的所有三个一起堆叠到一个新矩阵(3 * m * n或m * n * 3)的不同通道中,如在Matlab中实现的那样:

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

如何在Python中有效地实现这一目标?

1 个答案:

答案 0 :(得分: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]]]