Разница между scipy.spatial.KDTree и scipy.spatial.cKDTree - PullRequest
29 голосов
/ 03 августа 2011

В чем разница между этими двумя алгоритмами?

Ответы [ 2 ]

34 голосов
/ 03 августа 2011

cKDTree - это подмножество KDTree , реализованное на C ++, обернутое в Cython, поэтому быстрее.1009 * двоичный файл, каждый из узлов которого представляет собой выровненный по оси гипер-прямоугольник.Каждый узел задает ось и разделяет набор точек в зависимости от того, больше или меньше их координата вдоль этой оси, чем конкретное значение.поддерживает запросы всех соседей, как с массивами точек, так и с другими kd-деревьями.Они действительно используют достаточно эффективный алгоритм, но kd-дерево не обязательно является лучшей структурой данных для такого рода расчетов.

12 голосов
/ 11 марта 2013

В случае использования (поиск ближайшего соседа 5D в KDTree с приблизительно 100K точками) cKDTree примерно в 12 раз быстрее KDTree.

...