【发布时间】:2017-04-20 10:54:44
【问题描述】:
我需要通过增加与另一个点的距离来对一个 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]])
我有一些想法,但它们看起来非常低效。
谢谢!
【问题讨论】:
-
这是一种方式:
np.array(sorted(arr, key=lambda x: dist(1,1,x[0], x[1]))).
标签: python arrays sorting proximity