如何将含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
相关产品推荐
相关产品推荐

