Я хотел вычислить расстояние между двумя трехмерными облаками точек, по крайней мере, с 2000 точками, используя Расстояние движителя Земли с помощью следующего кода, однако оно слишком медленное и работает неправильно. Итак, есть ли способ рассчитать его для приближенного быстрее?
from scipy.spatial.distance import cdist
from scipy.optimize import linear_sum_assignment
def emd(self):
d = cdist(self.X, self.Y)
assignment = linear_sum_assignment(d)
return d[assignment].sum() / min(len(self.X), len(self.Y))