使用特定模式将 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)
我有一个形状为 (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)