如何将一维NumPy数组合并为x为第一列、y为第二列的二维数组
解决Numpy一维数组合并为二维数组的问题
嘿,我来帮你搞定这个问题~先说说你为啥会触发那个错误:你写了data_array_new = numpy.array,这其实是把Numpy里的array构造函数本身赋值给了变量,而不是创建一个新的数组对象,自然没法用索引去赋值啦,这就是TypeError的根源。
下面给你几种简单靠谱的正确实现方法,任选一种都能满足“第一列为x、第二列为y”的需求:
方法1:用numpy.column_stack(最直观)
这个函数就是专门用来把多个一维数组按列合并成二维数组的,代码超简洁:
import numpy as np # 假设你已经提取好x和y两个一维数组 data_array_new = np.column_stack((x, y))
方法2:用numpy.hstack(需先转形状)
hstack是按行合并的,所以得先把每个一维数组转成(n,1)的二维列向量,再合并:
data_array_new = np.hstack((x.reshape(-1, 1), y.reshape(-1, 1)))
这里reshape(-1,1)的作用是自动根据数组长度计算行数,把一维数组转成单列的二维数组。
方法3:直接构造数组后转置
把x和y作为行传入数组,再用.T转置成列的形式:
data_array_new = np.array([x, y]).T
你可以试试这几种方法,都能完美得到第一列是x、第二列是y的二维数组~
内容的提问来源于stack exchange,提问作者sw14928
相关产品推荐
相关产品推荐

