【问题标题】:Sorting arrays in NumPy ascending on one column and descending on other column在 NumPy 中对数组进行排序,在一列升序,另一列降序
【发布时间】:2020-02-08 15:45:12
【问题描述】:

如何在 NumPy 中按第一列升序和第二列降序对二维数组进行排序?

例如,

a = array([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5],
           [7, 1, 6]])

结果:

array([[4, 5, 6],
       [7, 1, 6],
       [7, 0, 5],
       [9, 2, 3]])

【问题讨论】:

标签: python arrays numpy sorting matrix


【解决方案1】:

您可以为此使用np.lexsort 函数

import numpy as np
a = np.asarray([[9, 2, 3],
           [4, 5, 6],
           [7, 0, 5],
           [7, 1, 6]])

a[np.lexsort((-a[:, 1], a[:, 0]))]

输出

array([[4, 5, 6],
       [7, 1, 6],
       [7, 0, 5],
       [9, 2, 3]])

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 2022-11-26
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2016-10-18
    相关资源
    最近更新 更多