字典序排序浮点数组python

Lexicographic sort float array python

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

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

我想让它变成

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

我该怎么做?

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

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

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