У меня есть двумерный массив:
MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0],
[6588253.79, 1933602.89, 212.66, 0, 0],
etc...)
Первые два элемента MyArray[0]
и MyArray[1]
представляют собой координаты точек X и Y.
Для каждого элемента в массиве я хотел бы найти самый быстрый способ вернуть его единственного ближайшего соседа в радиусе X единиц. Мы предполагаем, что это двумерное пространство.
скажем для этого примера X = 6
.
Я решил проблему, сравнивая каждый элемент с каждым другим элементом, но это занимает 15 минут или около того, когда ваш список имеет длину 22 000 пунктов. Мы надеемся в конечном итоге запустить это в списках примерно из 30 миллионов точек.
Я читал о деревьях K-d и понимаю основную концепцию, но у меня возникли проблемы с пониманием того, как их писать.
scipy.spatial
есть реализация дерева k-d. - person John Vinyard   schedule 17.10.2012