Учитывая набор точек, для всех перестановок из 2 точек в наборе я хочу вычислить общее квадратное расстояние от каждой другой точки до линии, определенной этой парой.
Вот что у меня такfar:
import numpy as np
import itertools
def dist_point2line(a, b, c):
return np.linalg.norm(np.cross(a-b, c-b))/np.linalg.norm(c-b)
points = np.array([(1,2), (2,3), (3,2), (0,4), (4,1), (3,3)])
pairs = itertools.permutations(points, 2)
distances = []
for (p2, p3) in pairs:
total = 0
for p1 in points:
distance = dist_point2line(p1, p2, p3)
total += distance*distance
distances.append(total)
Проблема в том, что в настоящее время также рассчитывается расстояние до p2 и p3, которые, очевидно, равны нулю.Как я могу сделать это более эффективным?