使用特定模式将 4D numpy 重塑为 5D 数组

Reshaping 4D numpy to 5D array using specific pattern

我有一个形状为 (N x 8 x 24 x 98) 的 4D numpy 数组,我需要将其重塑为 5D 形状 (N x 8 x 24 x 7 x 14),以便将最后一个维度分成 2 个单独的维度。

如果v_i是旧矩阵最后一个维度(包含98个元素)中元素i的值,那么这些值在新矩阵的2个维度中应该按如下顺序排列形状 7 x 14:

[[v_0, v_1, v_2, v_3, v_4, v_5, v_6], [v_7, v_8, v_9, v_10, v_11, v_12, v_13], ...]

性能并不重要,因此如果需要,解决方案可能会使用 for 循环。

IIUC 你可以简单地重塑你的数组/矩阵:

In [109]: a = np.arange(8*24*98).reshape(8,24,98)

In [110]: a.shape
Out[110]: (8, 24, 98)

In [111]: x = a.reshape(8,24,7,14)

In [112]: x.shape
Out[112]: (8, 24, 7, 14)