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

trm*_*h89 15 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.

Ale*_*ley 22

用途dstack:

>>> np.dstack((A, B)).shape
(480, 640, 4)
Run Code Online (Sandbox Code Playgroud)

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

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

>>> np.append(A, np.atleast_3d(B), axis=2).shape
(480, 640, 4)
Run Code Online (Sandbox Code Playgroud)

  • 或者使用最基本的方法:`np.concatenate(A,B [...,None],axis = 2)` (2认同)
  • @piepi,你看过“concatenate”文档吗?它们比我以前的评论优先。无论如何,我应该写“np.concatenate([A, B[...,None]], axis=2)”。也就是说,将数组放入列表中 (2认同)