我需要通过增加与另一个点的距离来对点的 numpy 数组进行排序。
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]])
我想做的是在固定点 [i,j]=[1,1] 和 arr 中的每个有序对 [ip,jp] 之间使用函数 dist(1,1,ip,jp) 来返回 arr元素从与 [i,j] 的接近度从低到高排序。有人对此有快速的解决方案吗?
我想要的输出是 new_arr = np.array([[1,2],[0,0],[4,1]])
我有一些想法,但它们看起来效率极低。
Thanks!