在我開發的python應用程序中,我有一個3D點陣列(大小在2到100000之間),我必須找到距離每個點一定距離內的點其他(比如在兩個值之間,比如0.1和0.2)。我需要這個圖形應用程序,這個搜索應該是非常快的(對於10000點的樣本,約爲1/10秒)在空間中找到比某個值更接近的點
作爲第一個實驗,我嘗試使用scipy.spatial.KDTree.query_pairs實現,並且5000點的樣本需要5秒才能返回索引。你知道任何可能適用於這個特定案例的方法嗎?
更多關於應用程序A位:
這些點代表原子座標和距離搜索是非常有用的確定原子之間的鍵。債券不一定是固定的,但可能在每一步都會發生變化,例如氫鍵。
您是否看到https://github.com/scipy/scipy/pull/262?看起來cKDTree要快得多,並且查詢對函數應該可以在SciPy的開發版本中使用。 – rici 2013-03-20 04:23:30
我沒有看到,謝謝你指出這一點!看來新版本的cKDTree對於我的目的來說足夠快,我可以嘗試在我的應用程序中支持... – pygabriel 2013-03-20 05:52:21