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

如何将含NumPy数组元素的列表转换为按列拆分的三个列表

将NumPy数组列表按列拆分为普通列表的方法

这里提供两种简洁的实现方式:

方法一:利用NumPy二维数组操作

适合已经导入NumPy的场景,操作直观高效:

import numpy as np

# 你的原始NumPy数组列表
arr_list = [np.array([0.2, -2.3, 5.3]),
            np.array([-1.6, -1.7, 0.3]),
            np.array([2.4, -0.2, -3.0]),
            np.array([-4.1, -2.3, -2.7])]

# 转换为二维NumPy数组(每个子数组作为一行)
two_d_arr = np.array(arr_list)

# 按列提取并转为普通Python列表
list1 = two_d_arr[:, 0].tolist()
list2 = two_d_arr[:, 1].tolist()
list3 = two_d_arr[:, 2].tolist()
  • np.array(arr_list) 将输入列表转为二维数组,原列表中的每个子数组对应二维数组的一行
  • [:, n] 表示提取二维数组的第n列(索引从0开始)
  • tolist() 将NumPy数组转换为普通Python列表

方法二:使用Python内置zip函数

无需额外依赖NumPy,用原生函数即可完成:

import numpy as np

# 你的原始NumPy数组列表
arr_list = [np.array([0.2, -2.3, 5.3]),
            np.array([-1.6, -1.7, 0.3]),
            np.array([2.4, -0.2, -3.0]),
            np.array([-4.1, -2.3, -2.7])]

# 解包数组列表并按列打包,再转为列表
list1, list2, list3 = [list(col) for col in zip(*arr_list)]
  • *arr_list 将原列表中的每个NumPy数组解包为zip的独立参数
  • zip会自动按位置将所有数组的对应元素打包成元组,每个元组对应一列的元素
  • 通过列表推导式将每个元组转为普通Python列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:37:11