如何通过循环构造合并后的Numpy数组?代码问题求助
用两个列表生成指定Numpy二维数组的解决方案
你的代码直接把for循环放在np.array()里不符合Python语法,而且循环中未定义变量i,无法正确生成目标数组。下面提供几种简洁的正确写法:
方法1:列表推导式
先通过列表推导式构建符合结构的Python列表,再转换为Numpy数组:
import numpy as np x1 = [200,50,125,275,350] x2 = [475,575,700,700,575] # 用len(x1)代替固定的5,适配不同长度的列表 array = np.array([[x1[i], x2[i]] for i in range(len(x1))])
方法2:Numpy内置函数(更高效)
利用Numpy的column_stack函数直接按列拼接两个列表,一步生成目标二维数组:
array = np.column_stack((x1, x2))
或者用vstack结合转置操作实现:
array = np.vstack((x1, x2)).T
执行上述任意一种方法后,都能得到你期望的结果:
array([[200, 475],
[ 50, 575],
[125, 700],
[275, 700],
[350, 575]])
内容的提问来源于stack exchange,提问作者Daniel Molina
相关产品推荐
相关产品推荐

