我正在寻找一个函数来计算一个numpy数组中点(具有两个坐标x,y)与线段之间的欧几里得距离。我的目标是在线段和10k个点的情况下,在0.01秒内得出结果。
我已经找到了单点的函数。但是运行for循环非常低效。
我还找到了这个计算到无限线的距离的函数:
我已经找到了单点的函数。但是运行for循环非常低效。
我还找到了这个计算到无限线的距离的函数:
def line_dists(points, start, end):
if np.all(start == end):
return np.linalg.norm(points - start, axis=1)
vec = end - start
cross = np.cross(vec, start - points)
return np.divide(abs(cross), np.linalg.norm(vec))
这很高效,我希望能够用类似的方法来处理一个有界线。
谢谢你的帮助。
np.linalg.norm
的速度非常慢。同样的情况也适用于np.cross
。 - Eskapp