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

如何使用Numpy将三维数组转换为指定的列数组结构?

Numpy数组维度调整解决方案

原始数组的形状为 (2, 3, 4),目标数组的形状是 (2, 4, 3, 1)。要实现这个转换,需要先调整轴的顺序,再扩展维度,步骤如下:

  1. 调整轴的顺序:将每个子数组(形状(3,4))的行和列互换,也就是把数组的轴从(0,1,2)重新排列为(0,2,1),得到形状(2,4,3)的数组。
  2. 扩展最后一维:给每个元素增加一个长度为1的维度,最终得到目标形状(2,4,3,1)。

实现代码

import numpy as np

arr = np.array([
    [
        [1, 3, 9, 1],
        [2, 2, 9, 1],
        [1, 1, 6, 4],
    ],
    [
        [3, 3, 3, 4],
        [0, 9, 2, 6],
        [7, 6, 6, 1],
    ]
])

# 方法1:转置后扩展维度
result = np.expand_dims(arr.transpose(0, 2, 1), axis=-1)

# 方法2:转置后直接reshape
# result = arr.transpose(0, 2, 1).reshape(2, 4, 3, 1)

print(result.shape)  # 输出 (2, 4, 3, 1),符合目标结构

验证结果

以第一个子数组为例,转换后:

  • 原第一列[1,2,1]变为[[1],[2],[1]]
  • 原第二列[3,2,1]变为[[3],[2],[1]]
    完全匹配你给出的目标数组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:45:45