Быстро найти ближайшую точку к другой точке с помощью NumPy и/или SciPy

Я хочу знать самый быстрый способ в python вычислить ближайшую точку в списке точек к моей точке. Уже есть этот вопрос, но он не учитывает производительность, и есть следующие дополнительные подробности:

  • Точек много-много (сотни тысяч)
  • Данные уже разделены на сегменты, если есть применимые к этому оптимизации.
  • SciPy в порядке, но только если он быстрее

РЕДАКТИРОВАТЬ: Мне просто нужно найти ближайшую точку, а сегменты представляют собой примерно одинаково длинные подсписки точек.

РЕДАКТИРОВАНИЕ 2: тема вопроса изменена с расстояния на ближайшую точку.


person noɥʇʎԀʎzɐɹƆ    schedule 06.07.2015    source источник
comment
Возможно ли, что вы могли бы провести несколько масштабированных тестов с примерно 1000 точек с помощью различных методов, которые вы исследовали?   -  person bcdan    schedule 06.07.2015
comment
Итак, вычисление ближайших точек (см. scipy.spatial.cKDTree) — это совсем другая задача, чем вычисление расстояний. Я все еще не понимаю сегменты: вы ищете ближайшие точки между сегментами, внутри сегментов и т. д.? Не могли бы вы привести минимальный пример?   -  person rth    schedule 06.07.2015
comment
@rth Я знаю, что точка находится на (нелинейной) линии, и она разделена на сегменты точек примерно одинаковой длины, и я хочу найти ближайшую точку на этой линии, не зная, на каком сегменте она находится. . (Сегменты предназначены для других вычислительных целей, но они также могут помочь ускорить этот расчет.)   -  person noɥʇʎԀʎzɐɹƆ    schedule 06.07.2015
comment
@rth Хм, спасибо. Прочитал этот вопрос раньше, но это подтвердило, что это также самый быстрый способ.   -  person noɥʇʎԀʎzɐɹƆ    schedule 06.07.2015