我有一个数组 A,它的形状是(480, 640, 3),以及一个形状为(480, 640)的数组B。 如何将这两个数组合并成一个形状为(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.concatenate(A, B[...,None], axis=2)
来实现。该方法需要将A和B进行连接,其中B需要添加一个新的维度作为最后一个维度。在连接时,需要指定轴为第三个轴。 - hpauljTypeError: concatenate() 最多只接受2个参数 (给定了3个)
。 - piepiconcatenate
文档了吗?它们比我的旧评论更优先。无论如何,我应该写成np.concatenate([A, B[...,None]], axis=2)
。也就是说,将数组放入列表中。 - hpauljconcatenate
文档了吗?它们比我的旧评论更优先。无论如何,我应该写成np.concatenate([A, B[...,None]], axis=2)
。也就是说,将数组放入列表中。 - hpaulj