【问题标题】:How to sort a numpy array by axis and preserve rows [duplicate]如何按轴对numpy数组进行排序并保留行[重复]
【发布时间】: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 实现这一点?

【问题讨论】:

    标签: python arrays sorting numpy


    【解决方案1】:

    你可以使用np.argsort:

    Y = X[X[:, 2].argsort()]
    
    array([[12, 35,  1,  6],
           [ 1,  2,  3,  4],
           [ 1,  2,  6,  3]])
    

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2017-04-28
      • 2011-02-11
      • 1970-01-01
      • 2021-09-21
      • 2013-03-23
      • 2021-10-30
      • 2019-01-15
      • 2020-03-06
      相关资源
      最近更新 更多