沿给定轴将多维零数组插入NumPy数组
我有一个n维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)
(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