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

4
例如,
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]])

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

第三列按顺序排列,行保持不变。 如何使用numpy实现这一点?
1个回答

3
你可以使用 np.argsort
Y = X[X[:, 2].argsort()]

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接