私が開発しているPythonアプリケーションでは、3Dポイントの配列(サイズは2〜100000)があり、互いに一定の距離内にあるポイントを見つける必要があります(たとえば、0.1と0.2のような2つの値の間)。 。グラフィックアプリケーションにはこれが必要ですが、この検索は非常に高速である必要があります(10000ポイントのサンプルの場合は約1/10秒)
最初の実験として、scipy.spatial.KDTree.query_pairs実装を使用しようとしましたが、5000ポイントのサンプルでは、インデックスを返すのに5秒かかります。この特定のケースで機能する可能性のあるアプローチを知っていますか?
アプリケーションについてもう少し:
ポイントは原子の座標を表し、距離検索は原子間の結合を決定するのに役立ちます。結合は必ずしも固定されているわけではありませんが、水素結合の場合など、各ステップで変化する可能性があります。