Python - 从文件中的列创建数组

时间:2014-05-20 20:11:53

标签: python arrays numpy

我有一个包含两列和n行的文本文件。通常我使用x,y=np.loadtxt('data',usecols=(0,1),unpack=True)处理两个单独的向量,但我想将它们作为array=[[a,1],[b,2],[c,3]...]形式的数组,其中所有字母对应于x向量,数字对应于y向量,所以我可以问array[0,2]=b之类的东西。我尝试过定义 array[0,:]=x但我没有成功。有什么简单的方法吗?

另外,我想获得某个y值的相应x值。我试过

x_value=np.argwhere(array[:,1]==3)

我期待x_value为c,因为它对应于第1列中的3,但它也不起作用。

1 个答案:

答案 0 :(得分:1)

我认为您只需要解压缩从loadtxt返回的数组。做:

arr = np.loadtxt('data', usecols=(0,1))

如果您的文件包含:

0 1
2 3
4 5

arr就像:

[[0, 1],
 [2, 3],
 [4, 5]]

请注意,要索引此数组,您需要先指定行(并且索引从0开始):

arr[1,0] == 2 # True!

您可以找到与x值相对应的y值:

x_vals = arr[:,0][arr[:,1]==y_val]

索引将返回一个数组,但如果x_vals是唯一的,y_val将只有一个值。如果您事先知道y_val只会有一个匹配,那么您可以在[0]到索引结束时使用,这样您就可以得到第一个结果。