Lexicographic sort float array python

时间:2015-01-21 18:08:54

标签: python sorting numpy lexicographic

好的,所以,我有一个4x2 numpy ndarray,我想按字典顺序对它进行排序。也就是说,如果我有数组

[[0,0],
[1,1],
[0,1],
[1,0]]

我希望它成为

[[0,0],
[0,1],
[1,0],
[1,1]]

我该怎么做?

1 个答案:

答案 0 :(得分:5)

你可以使用numpy的lexsort。不过,Lexsort使用最后一列作为主键进行排序。获得所需内容的一种方法是明确指定列:

 x[np.lexsort((x[:,1], x[:,0]))]

 # array([[0, 0],
 #   [0, 1],
 #   [1, 0],
 #   [1, 1]])