Python-从文件中的列创建数组
我有一个两列n行的文本文件。通常我使用Python-从文件中的列创建数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个两列n行的文本文件。通常我使用x,y=np.loadtxt('data',usecols=(0,1),unpack=True)处理两个单独的向量,但我希望将它们作为一个数组,形式为array=[[a,1],[b,2],[c,3]…][/code>,其中所有字母对应于x向量,数字对应于y向量,这样我就可以问一些类似array[0,2]=b。我试着定义 array[0,:]=x但我没有成功。有什么简单的方法吗 另外,我想得到某个y值对应的x值。我试过了 x_value=np.argwhere
x,y=np.loadtxt('data',usecols=(0,1),unpack=True)
处理两个单独的向量,但我希望将它们作为一个数组,形式为array=[[a,1],[b,2],[c,3]…][/code>,其中所有字母对应于x向量,数字对应于y向量,这样我就可以问一些类似array[0,2]=b
。我试着定义
array[0,:]=x
但我没有成功。有什么简单的方法吗
另外,我想得到某个y值对应的x值。我试过了
x_value=np.argwhere(array[:,1]==3)
我希望x_值是c,因为它对应于第1列中的3,但它也不起作用。我认为您不需要解压缩从loadtxt
返回的数组。做:
arr = np.loadtxt('data', usecols=(0,1))
如果您的文件包含:
0 1
2 3
4 5
arr
将类似于:
[[0, 1],
[2, 3],
[4, 5]]
请注意,要索引到此数组中,需要首先指定行(索引从0开始):
您可以通过以下方式找到与给定的y
值相对应的x
值:
x_vals = arr[:,0][arr[:,1]==y_val]
索引将返回一个数组,但如果y\u val
是唯一的,则x\u val
将只有一个值。如果您事先知道y_val
只有一个匹配项,您可以将[0]
附加到索引的末尾,这样您就得到了第一个结果
x_vals = arr[:,0][arr[:,1]==y_val]