2010-06-17 2 views
2

Мне нужна структура данных для выполнения запросов подсчета диапазона 2d (т. Е. Количества точек в заданном прямоугольнике).Структура данных в python для запросов подсчета диапазона 2d

Я думаю, что моя лучшая ставка - это дерево значений (оно может засчитываться в журнале^2 или даже регистрироваться после некоторых оптимизаций). Это звучит как хороший выбор? Кто-нибудь знает о реализации python, или я должен написать сам?

ответ

2

См. scipy.spatial.KDTree для одной реализации.

Существует также менее общий (но иногда более полезный, особенно в отношении того, что вы имеете в виду) с использованием quadtree shapelib. См. this blog и соответствующий package in PyPi.

Есть, вероятно, другие реализации, тоже, но те два, которые я использовал ...

+1

я не использовал, потому что я думал, что kdtree является O (SQRT (п)). Я говорил о другой структуре данных (дереве диапазона), которая является O (log^2 (n)). Однако кажется, что они используют действительно крутую оптимизацию для нескольких запросов, а статья (http://www.cs.cmu.edu/~agray/nips-final.ps) упоминает, что именно я пытаюсь сделать как приложение для метода (быстрая оценка плотности ядра). Поэтому я попробую. Благодаря! – Dani

Смежные вопросы