按多个轴对2D numpy数组进行排序
- 论坛
- 按多个轴对2D numpy数组进行排序
10 浏览
按多个轴对2D numpy数组进行排序
我有一个形状为(N,2)的二维numpy数组,其中包含N个点(x和y坐标)。例如:
array([[3, 2], [6, 2], [3, 6], [3, 4], [5, 3]])
我想对其进行排序,使得点按照x坐标排序,当x坐标相同时,则按照y坐标排序。所以上面的数组应该变成这样:
array([[3, 2], [3, 4], [3, 6], [5, 3], [6, 2]])
如果这是一个普通的Python列表,我可以简单地定义一个比较器来实现我的目标,但据我所知,numpy的排序函数不接受用户定义的比较器。有什么想法吗?
编辑:谢谢你们的建议!我设置了一个快速的测试案例,其中包含1000000个随机整数点,并对能够运行的方法进行了基准测试(抱歉,暂时无法升级numpy)。
我的方法:4.078秒 mtrw的方法:7.046秒 unutbu的方法:0.453秒