Поиск ближайшего соседа в Python без дерева kd

Я начинаю изучать Python, исходя из опыта работы с C ++. Я ищу быстрый и простой способ найти ближайшего (ближайшего соседа) некоторой многомерной точки запроса в двумерном (numpy) массиве многомерных точек (также numpy-массивы). Я знаю, что у scipy есть дерево k-d, но я не думаю, что это то, что мне нужно. Прежде всего, я изменю значения многомерных точек в 2D-массиве. Во-вторых, положение (координаты) каждой точки в 2D-массиве имеет значение, поскольку я также буду менять их соседей.

Я мог бы написать функцию, которая проходит через 2D-массив и измеряет расстояние между точкой запроса и точками в массиве, отслеживая наименьшую из них (используя функцию scipy space distance для измерения расстояния). Есть ли встроенная функция для этого? Я стараюсь по возможности избегать повторения массивов в Python. У меня также будет множество точек запроса, поэтому будет по крайней мере два цикла for - один для итерации по точкам запроса и для каждого запроса цикл для итерации по 2D-массиву и нахождения минимального расстояния.

Спасибо за любой совет.

10
задан COM 15 December 2011 в 23:16
поделиться