我有一个包含两列和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,但它也不起作用。
答案 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]
到索引结束时使用,这样您就可以得到第一个结果。