我需要通过增加与另一个点的距离来对一个点数组进行排序。在
import numpy as np
def dist(i,j,ip,jp):
return np.sqrt((i-ip)**2+(j-jp)**2)
arr = np.array([[0,0],[1,2],[4,1]])
我想做的是在arr中的固定点[I,j]=[1,1]和每个有序对[ip,jp]之间使用函数dist(1,1,ip,jp),返回arr,每个元素从最低到最高排序到[I,j]。有人能快速解决这个问题吗?在
我想要的输出是new_arr=np.数组([[1,2],[0,0],[4,1]])
我有一些想法,但看起来效率低下。在
谢谢!在
似乎有两种方法可以做到这一点:
将整个numpy数组转换成Python列表,并使用Python的sort方法和key函数对其进行排序。在
在原始数组上创建第二个numpy数组my mapping
dist()
,使用.argsort()
获得排序顺序,然后将其应用于原始数组。在相关问题 更多 >
编程相关推荐