NumPy二级排序

时间:2018-04-20 09:13:22

标签: python sorting numpy

我有以下简单数组:

a = np.array([
             [1, 1000, 58],
             [1, 200, 69],
             [3, 300, 34],
             [4, 400, 82]], dtype = int)

当我发出以下lexsort()命令时:i = np.lexsort((a[:,0], a[:,1]))

我得到了:

array([[   1,  200,   69],
       [   3,  300,   34],
       [   4,  400,   82],
       [   1, 1000,   58]])

虽然我在期待:

array([[   1,  200,   69],
       [   1, 1000,   58],
       [   3,  300,   34],
       [   4,  400,   82],
   ])

任何人都可以解释为什么吗?以及如何获得预期的输出?

1 个答案:

答案 0 :(得分:3)

关注@Divakar评论。我所要做的就是:

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

谢谢