在 Python 中优化 kd-tree 运行时的最佳方法是什么?

时间:2021-01-15 18:55:04

标签: python scipy kdtree

我目前正在使用 Python 的 scipy.spatial.kdtree 在两个大型地球科学数据集之间执行最近邻查找。一个是附有特定纬度/经度的风暴报告集合;另一个是包含美国一半土地利用数据的 1x1 公里网格数据。

我对类似的数据集执行了 kd-tree 操作,这些数据集大约有 4.4 * 10 ^ 7 个点可以在 kd-tree 中排序,并且在大约 160 秒内成功排序;但是,当我尝试使用此数据集构建 kd 树时(大约有 1.6 * 10 ^ 8 个要排序的点),我的内核只是超时。我知道 kd-tree 在 Olog(n) 运行时运行,尽管我不太熟悉 big-O 表示法的精细工作,所以我不确定这是否会导致指数增长在运行时。

这可能是由于在构建 kd-tree 之前可以通过更好的数据分区来优化机器超时,还是这似乎有点侥幸?

提前致谢!

0 个答案:

没有答案