微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我目前正在使用 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 之前可以通过更好的数据分区来优化机器超时,还是这似乎有点侥幸?

提前致谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?