【发布时间】:2019-07-25 00:38:23
【问题描述】:
我目前有一个形状为(1600,105) 的ndim 数组,其中填充了数据。我想保持现有数据相同,但只需在中间添加一个新的零轴,从而生成形状为(1600,14,105) 的 ndarray,其中原始值保持不变。如何在 python / 使用 numpy 中执行此操作?此外,我制作了一个形状为(1600,14,105) 的零数组,但不知道如何将原始数组中的值复制到这个数组中。
我尝试添加一个新轴,但不确定如何将我当前的数组从 (1600,105) 重塑为 (1600,14,105)。我尝试使用array2 = np.zeros((1600,14,105)) 制作一个形状为零的 np 数组(1600,14,105)。现在我想将形状为(1600, 105) 的原始array1 中的值复制到新数组中的相应轴中。
array2 = np.zeros((1600,14,105))
array1.shape
Out[1]:
(1600, 105)
【问题讨论】:
-
array2[:,0,:] = array1会将array1复制到一个array2- 只复制一份,留下13 个大小相同的“列”零。还是你想要 14 份?array2[...] = array1[:,None,:]? -
我尝试了这两种方法,但这并不是我想要的。想象一下我有这个 (1600,105) 数组。我想保持原样,但新尺寸为 14。
-
如果要复制数据14次,
np.repeat(a[:, None, :], 14, axis=1)。如果您只是想满足某些矢量化操作的形状约束,可能会有更好的方法来做您想做的事情。 -
形状为 (1600,14,105) 的数组大 14 倍。它要么必须大部分为零,要么重复。
-
也许你应该添加一个例子
标签: python numpy multidimensional-array numpy-ndarray