按列对python数组/recarray进行排序
问题描述:
关于如何按给定列对整个数组/重新数组进行排序,我有一个相当简单的问题.例如,给定数组:
I have a fairly simple question about how to sort an entire array/recarray by a given column. For example, given the array:
import numpy as np
data = np.array([[5,2], [4,1], [3,6]])
我想按要返回的第一列对数据进行排序:
I would like to sort data by the first column to return:
array([[3,6], [4,1], [5,2]])
答
Use data[np.argsort(data[:, 0])]
其中 0
是要排序的列索引:
Use data[np.argsort(data[:, 0])]
where the 0
is the column index on which to sort:
In [27]: import numpy as np
In [28]: data = np.array([[5,2], [4,1], [3,6]])
In [29]: col = 0
In [30]: data=data[np.argsort(data[:,col])]
Out[30]:
array([[3, 6],
[4, 1],
[5, 2]])