Difference between scipy.spatial.KDTree and scipy.spatial.cKDTree

前端 未结 3 1461
春和景丽
春和景丽 2021-02-02 07:22

What is the difference between these two algorithms?

3条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-02 08:01

    cKDTree is a subset of KDTree, implemented in C++ wrapped in Cython, so therefore faster.

    Each of them is

    a binary trie, each of whose nodes represents an axis-aligned hyperrectangle. Each node specifies an axis and splits the set of points based on whether their coordinate along that axis is greater than or less than a particular value.

    but KDTree

    also supports all-neighbors queries, both with arrays of points and with other kd-trees. These do use a reasonably efficient algorithm, but the kd-tree is not necessarily the best data structure for this sort of calculation.

提交回复
热议问题