在我正在开发的 python 应用程序中,我有一个 3D 点数组(大小在 2 到 100000 之间),我必须找到彼此相距一定距离内的点(比如在两个值之间,如 0.1 和 0.2) . 我需要这个用于图形应用程序,这个搜索应该非常快(对于 10000 个点的样本,大约需要 1/10 秒)
作为第一个实验,我尝试使用 scipy.spatial.KDTree.query_pairs 实现,对于 5000 点的样本,返回索引需要 5 秒。您知道任何可能适用于这种特定情况的方法吗?
关于应用程序的更多信息:
这些点代表原子坐标,距离搜索有助于确定原子之间的键。键不一定是固定的,但可以在每个步骤中发生变化,例如在氢键的情况下。