我有一个2D numpy形状的阵列(N,2),它持有N个点(x和y坐标).例如:
array([[3, 2],
[6, 2],
[3, 6],
[3, 4],
[5, 3]])
Run Code Online (Sandbox Code Playgroud)
我想对它进行排序,使得我的点按x坐标排序,然后在x坐标相同的情况下按y排序.所以上面的数组应该如下所示:
array([[3, 2],
[3, 4],
[3, 6],
[5, 3],
[6, 2]])
Run Code Online (Sandbox Code Playgroud)
如果这是一个普通的Python列表,我只需要定义一个比较器来做我想要的,但据我所知,numpy的sort函数不接受用户定义的比较器.有任何想法吗?
编辑:感谢您的想法!我设置了一个包含1000000个随机整数点的快速测试用例,并对我可以运行的那些进行了基准测试(抱歉,目前无法升级numpy).
Mine: 4.078 secs
mtrw: 7.046 secs
unutbu: 0.453 secs
Run Code Online (Sandbox Code Playgroud)