如何按轴对numpy数组进行排序并保留行[重复]
Posted
技术标签:
【中文标题】如何按轴对numpy数组进行排序并保留行[重复]【英文标题】:How to sort a numpy array by axis and preserve rows [duplicate] 【发布时间】:2019-03-12 06:38:23 【问题描述】:例如,
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】:你可以使用np.argsort
:
Y = X[X[:, 2].argsort()]
array([[12, 35, 1, 6],
[ 1, 2, 3, 4],
[ 1, 2, 6, 3]])
【讨论】:
以上是关于如何按轴对numpy数组进行排序并保留行[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何对特定行上的 numpy 数组进行排序,其他行相应更改? [复制]