[英]sort two columns in a text file with numpy.lexsort
我有一个包含两列的文本文件,我想将第一列从较小的值排序为较大的值,然后根据第一列对第二列进行排序,然后将其保存到同一文件中。 我使用了这种方法,但是没有用
data4 = np.loadtxt('crate&J.txt')
a = data4[:,0]
b = data4[:,1]
ind = np.lexsort((b,a))
我该怎么办?
Lexsort不对数组进行排序,它返回索引。 以docs为例:
>>> first_names = ('Heinrich', 'Galileo', 'Gustav')
>>> surnames = ('Hertz', 'Galilei', 'Hertz')
>>> data = np.array([first_names, surnames])
>>> ind = np.lexsort(data)
>>> data[:, ind]
array([['Galileo', 'Gustav', 'Heinrich'],
['Galilei', 'Hertz', 'Hertz']],
dtype='|S8')
所以我想你的情况你需要
ind = np.lexsort(data.T[[1,0], :]) # you sort columns, not rows, second row first
np.savetxt('crate&J.txt', data4[ind,:])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.