将 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)
这处理了数组具有不同维数并沿第三轴堆叠数组的情况。
否则,要使用 append
或 concatenate
,您必须自己制作 B
三维空间并指定要连接它们的轴:
>>> np.append(A, np.atleast_3d(B), axis=2).shape
(480, 640, 4)
使用 np.stack
应该有效
但问题是两个数组都应该是二维形式。
np.stack([A,B])
我有一个数组 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)
这处理了数组具有不同维数并沿第三轴堆叠数组的情况。
否则,要使用 append
或 concatenate
,您必须自己制作 B
三维空间并指定要连接它们的轴:
>>> np.append(A, np.atleast_3d(B), axis=2).shape
(480, 640, 4)
使用 np.stack
应该有效
但问题是两个数组都应该是二维形式。
np.stack([A,B])