Scipy(http://www.scipy.org/)提供了兩個KD樹類; KDTree和cKDTree。優化Python KD樹搜索
cKDTree快得多,但比KDTree更少定製和查詢能力(據我所知,文檔)。
這是我的問題: 我有一個3百萬2維(X,Y)點的列表。我需要返回距離每個點X個單位距離內的所有點。
使用KDtree,有一個選項可以做到這一點:KDtree.query_ball_tree()
它生成一個從所有其他點的X單位內的所有點列表的列表。然而:這個清單是巨大的,並迅速填補我的虛擬內存(約744萬條項目長)。
潛在的解決方案#1:有沒有一種方法來解析這個列表到一個文本文件,因爲它是在寫什麼?
潛在的解決方案#2:我有一個for循環(列表中的每一個點),然後發現的X單元內單點的鄰國採用嘗試使用:KDtree.query_ball_point()
。然而:這需要永久,因爲它需要數百萬次運行查詢。這個KDTree工具有相當於cKDTree的嗎?
潛在解決方案#3:打我,任何人有任何想法?
啊,那會很好。我沒有任何技術/經驗來自源代碼編譯,所以我可能會考慮這一點。否則,除非發佈另一個解決方案,否則我會等待scipy的新版本發佈。 – Dlinet
@Dlinet版本0.12上個月發佈。 – jorgeca