У меня есть 2-мерный массив:
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 единиц. Мы предполагаем, что это находится в 2D пространстве.
скажем в этом примере X = 6
.
Я решил проблему, сравнивая каждый элемент с каждым другим элементом, но это занимает 15 минут или около того, когда ваш список имеет длину 22k. Мы надеемся, что в конечном итоге это запустит в списках около 30 миллионов баллов.
Я прочитал о деревьях K-d и понял основную концепцию, но мне было трудно понять, как script их.