沿给定轴将多维零数组插入NumPy数组

沿给定轴将多维零数组插入NumPy数组,numpy,Numpy,我有一个n维numpy数组的形状:(3,3,3,64)。我想通过插入零来增加沿轴2的计数,这样新形状就是(3,3,4,64) 如何插入零以增加numpy数组的给定轴值?创建一个与输入形状相同的零数组,但第三个轴的长度与填充长度相同,对于我们的情况,它是1,并沿同一轴(第三个轴)与输入数组连接。对于串联,我们可以使用np.concatenate或np.dstack(因为它的第三个轴) 因此,执行工作将是非常重要的- z = np.zeros((3, 3, 1, 64),dtype=a.dtype)

我有一个n维numpy数组的形状:
(3,3,3,64)
。我想通过插入零来增加沿轴2的计数,这样新形状就是
(3,3,4,64)


如何插入零以增加numpy数组的给定轴值?

创建一个与输入形状相同的零数组,但第三个轴的长度与填充长度相同,对于我们的情况,它是
1
,并沿同一轴(第三个轴)与输入数组连接。对于串联,我们可以使用
np.concatenate
np.dstack
(因为它的第三个轴)

因此,执行工作将是非常重要的-

z = np.zeros((3, 3, 1, 64),dtype=a.dtype)
out = np.concatenate((a,z),axis=2) # Or np.dstack((a,z))
样本运行-

In [182]: a = np.random.randint(11,99,(3, 3, 3, 64)) # Array with all nonzeros

In [183]: z = np.zeros((3, 3, 1, 64),dtype=a.dtype)

In [184]: out = np.concatenate((a,z),axis=2)

In [185]: (out[:,:,-1,:]==0).all()
Out[185]: True

In [186]: out.shape
Out[186]: (3, 3, 4, 64)

# Another way to verify
In [187]: (out==0).sum()
Out[187]: 576

In [188]: 3*3*64
Out[188]: 576