像表一样对numpy数组进行排序

Der*_*rek 7 python

我有一份清单

[[0, 3], [5, 1], [2, 1], [4, 5]]
Run Code Online (Sandbox Code Playgroud)

我使用numpy.array制作成一个数组:

[[0 3]
 [5 1]
 [2 1]
 [4 5]]
Run Code Online (Sandbox Code Playgroud)

我怎么像桌子一样对它进行排序?特别是,我希望按升序排序第二列,然后通过按升序排序第一列来解决任何关系.因此,我希望:

[[2 1]
 [5 1]
 [0 3]
 [4 5]]
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

And*_*all 9

http://docs.scipy.org/doc/numpy/reference/generated/numpy.lexsort.html#numpy.lexsort

特别是在你的情况下,

import numpy as np
x = np.array([[0,3],[5,1],[2,1],[4,5]])
x[np.lexsort((x[:,0],x[:,1]))]
Run Code Online (Sandbox Code Playgroud)

输出

array([[2,1],[5,1],[0,3],[4,5]])
Run Code Online (Sandbox Code Playgroud)