Я строю алгоритм, и в какой-то момент мне нужно вычислить минимальное расстояние (и индекс) точки p
и список точек (centers
). Т.е. Мне нужно найти ближайший элемент в centers
к p
.
На данный момент я использую fasthaversine, и мой код выглядит следующим образом:
sample_array = [sample for i in range(len(centers))]
distances = haversine(sample_array, centers, unit='m')
min_index = np.argmin(distances)
centers
может быть очень длинным списком, так что это может занять много времени. Кто-нибудь может предложить что-нибудь побыстрее?
Редактировать: я попробовал подход BallTree, но он кажется медленнее, чем указано выше. Для большего контекста мне нужно запустить это для большого количества точек p
, и каждый раз centers
будет другим, поэтому мне нужно каждый раз создавать BallTree.