将2D数组附加到3D数组,扩展第三维

时间:2015-12-18 14:15:10

标签: python arrays numpy append

我有一个形状为A的数组(480, 640, 3),以及一个形状为B的数组(480, 640)

如何将这两个作为一个形状(480, 640, 4)的数组追加?

我尝试了np.append(A,B),但没有保留维度,而axis选项会导致ValueError: all the input arrays must have same number of dimensions

1 个答案:

答案 0 :(得分:19)

使用dstack

>>> np.dstack((A, B)).shape
(480, 640, 4)

它处理数组具有不同维数的情况,并沿第三轴堆叠数组。

否则,要使用appendconcatenate,您必须自己制作B三维,并指定要加入它们的轴:

>>> np.append(A, np.atleast_3d(B), axis=2).shape
(480, 640, 4)