相关疑难解决方法(0)

按多个轴排序2D numpy数组

我有一个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)

python sorting numpy

28
推荐指数
2
解决办法
2万
查看次数

标签 统计

numpy ×1

python ×1

sorting ×1