这个算法的名称,是否有一个numpy/scipy实现呢?

Hoo*_*ked 6 python algorithm numpy scipy

动机:

我已经看到了这个算法的描述,如果存在标准实现,我宁愿不重新发明轮子.我还了解到,如果有一个scipy/numpy实现,它通常比我在python中自己滚动的任何东西都快得多.

算法描述

我在飞机上有很多分(几百万).从包含所有点的大盒子开始,我想连续将盒子细分为相等的区域子框.细分继续递归,而子框中至少有1,000个点.该算法返回一个树,该树描述细分以及点到树的每个叶节点的映射.

这个算法的名称是什么(比如分而治之?),并且在给定2D numpy点数组时是否有标准的方法?

Ted*_*opp 9

它被称为四叉树分区.至于Python代码,请参阅此主题.

  • 只是为了它的价值,`scipy.spatial.KDTree`(和/或`scipy.spatial.cKDTree`,出于性能原因用C编写)是一个比你链接的线程中列出的选项更强大的选择到,imo (6认同)