如何对numpy数组进行排序以找到最小坐标?

时间:2018-04-12 00:55:42

标签: python arrays numpy

我在numpy比较新,我想对一个数组进行排序,以找到一个具有最低x y值的点。

如何在numpy中对以下数组进行排序,以便按升序对第一列进行排序,即x坐标值,然后是第二列,即y坐标?

[[0.1, 0.2]
[0.5, 0.1]
[0.3, 0.9]
[0.7, 1.0]
[0.1, 0.3]
[0.2, 0.3]]

我看过关于numpy.sort的答案,但我不明白轴排序的含义是什么。

1 个答案:

答案 0 :(得分:5)

您可以使用numpy.lexsort。这将执行间接词典排序。由于某种原因,它首先对最后一行进行排序,因此在您的情况下,我们必须采用转置并反转xy的顺序。

>>> A
array([[0.1, 0.2],
       [0.5, 0.1],
       [0.3, 0.9],
       [0.7, 1. ],
       [0.1, 0.3],
       [0.2, 0.3]])
>>> A[np.lexsort(A.T[::-1])]
array([[0.1, 0.2],
       [0.1, 0.3],
       [0.2, 0.3],
       [0.3, 0.9],
       [0.5, 0.1],
       [0.7, 1. ]])