【发布时间】:2012-03-21 18:35:58
【问题描述】:
动机:
我已经看到了这种算法的描述,如果存在标准实现,我宁愿不重新发明轮子。我还了解到,如果有 scipy/numpy 实现,它通常比我可以在 python 中滚动的任何东西都要快。
算法说明
我在飞机上有大量的点(几百万)。从一个包含所有点的大框开始,我想不断地将框细分为面积相等的子框。当子框中至少有 1,000 个点时,细分继续递归。该算法返回一棵树,该树描述了细分以及点到树的每个叶节点的映射。
这个算法的名称是什么(类似于分而治之?),当给定一个二维 numpy 点数组时,是否有标准的方法?
【问题讨论】:
-
如果在一维中分裂它是一个 N-kD 树(对于 N=2)。还应该进行拆分,以使两个部分的种群大小(大约)相等。
-
@wildplasser 从计算的角度来看,我同意你关于沿相同大小的种群(最小树深度)的分裂。然而,我试图复制一篇论文的结果,他们完全按照我所说的那样,分割相等的区域。
-
哎呀,太丑了。但至少它们在尺寸
标签: python algorithm numpy scipy