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

Append 2D array to 3D array, extending third dimension

我有一个数组 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.

使用dstack:

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

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

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

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

使用 np.stack 应该有效 但问题是两个数组都应该是二维形式。

np.stack([A,B])