Python:如何沿新轴将多个数组堆叠在一起

标签 python matrix

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

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

我如何在 Python 中有效地实现这一点?

最佳答案

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]]]

关于Python:如何沿新轴将多个数组堆叠在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339314/

相关文章:

python - 我应该使用 'not x' 还是 'x == 0' 来检查 python 中模运算的结果是否为零

python - 在 python 中绘制实际设置的项目,而不是项目的数量

python - Scipy 稀疏矩阵 - 不同实现的目的和用法

java - 实现 SparseMatrix 的有效方法

Python从文件中读取和写入 'ß'

python - 使用 pip 和诗歌与 python 3.10.4 安装 TensorFlow 2.8.0 错误

python - Numpy - 计算对角线的乘积

python - 在python中加载matlab稀疏矩阵(matlab v 7.3)

python - 如何使用 PyGObject 使窗口居中

r - 根据每列的唯一值数量对矩阵(或 data.frame)进行排序