Python 如何按轴对numpy数组排序并保留行

Python 如何按轴对numpy数组排序并保留行,python,arrays,sorting,numpy,Python,Arrays,Sorting,Numpy,比如说, In [11]: X = np.array([[1,2,3,4],[1,2,6,3],[12,35,1,6]]) 给 In [12]: X Out[12]: array([[ 1, 2, 3, 4], [ 1, 2, 6, 3], [12, 35, 1, 6]]) 现在如果我用 In [13]: X.sort(axis=0) In [14]: X Out[14]: array([[ 1, 2, 1, 3], [

比如说,

In [11]: X  = np.array([[1,2,3,4],[1,2,6,3],[12,35,1,6]])

In [12]: X
Out[12]: 
array([[ 1,  2,  3,  4],
       [ 1,  2,  6,  3],
       [12, 35,  1,  6]])
现在如果我用

In [13]: X.sort(axis=0)

In [14]: X
Out[14]: 
array([[ 1,  2,  1,  3],
       [ 1,  2,  3,  4],
       [12, 35,  6,  6]])
我失去了行结构。我只想一次对一列进行排序,并维护行结构。所以

订购w.r.t第三列

In [14]: X
Out[14]: 
array([[ 12,  35,  1,  6],
       [ 1,  2,  3,  4],
       [1, 2,  6,  3]])
第三列按顺序排列,行保持不变

如何使用numpy实现这一点

您可以使用:

Y = X[X[:, 2].argsort()]

array([[12, 35,  1,  6],
       [ 1,  2,  3,  4],
       [ 1,  2,  6,  3]])