You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定2D NumPy数组重塑为目标3D NumPy数组?

解决方法

这其实是个维度重组的问题,核心是理清原数组和目标数组的维度对应关系。我们可以通过转置加重塑的组合操作一步到位实现需求:

原数组的形状是 (3, 4),目标数组是 (2, 2, 3)。先把原数组转置(行变列),得到形状为 (4, 3) 的数组——此时每一行正好是目标数组里需要的子数组(比如 [0,4,8]、[1,5,9] 这些),接着把这个转置后的数组重塑成 (2, 2, 3) 就完美匹配目标结构了。

代码示例

import numpy as np

# 原2D数组
original_arr = np.array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])

# 转置后重塑,得到目标3D数组
target_arr = original_arr.T.reshape(2, 2, 3)

print(target_arr)

运行后输出的结果就是你想要的:

array([[[ 0,  4,  8],
        [ 1,  5,  9]],

       [[ 2,  6, 10],
        [ 3,  7, 11]]])

另一种等价写法(用维度转置)

如果你更习惯用维度调整的思路,也可以先把原数组重塑为 (3, 2, 2),再调整维度顺序:

target_arr = original_arr.reshape(3, 2, 2).transpose(2, 1, 0)

这个操作的逻辑是:先把原数组的4列拆成2组(每组2列),得到形状 (3,2,2),然后通过transpose(2,1,0)把维度顺序从「行、组、组内列」改成「组、组内列、行」,最终得到目标形状。

两种方法都能达到目的,第一种相对更直观易懂~

内容的提问来源于stack exchange,提问作者TaxpayersMoney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:11:00