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