开发者社区 问答 正文

如何对多维数组按照第一列升序第二列降序排列?

例如:

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]])

展开
收起
游客6qcs5bpxssri2 2019-10-11 17:28:51 2805 分享 版权
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]))]lexsort

    2019-10-11 17:31:45
    赞同 展开评论
问答地址: