मैं एक 2 आयामी सरणी है:निकटतम पड़ोसी खोज: अजगर
MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0],
[6588253.79, 1933602.89, 212.66, 0, 0],
etc...)
पहले दो तत्वों MyArray[0]
और MyArray[1]
अंकों की एक्स और वाई निर्देशांक हैं।
सरणी में प्रत्येक तत्व के लिए, मैं खोजने के लिए तेजएक्स इकाइयों के दायरे में अपने एकल निकटतम पड़ोसी वापस जाने के लिए जिस तरह से करना चाहते हैं। हम मानते हैं कि यह 2 डी स्पेस में है।
इस उदाहरण के लिए X = 6
कहें।
मैंने प्रत्येक तत्व को हर दूसरे तत्व की तुलना करके समस्या हल कर दी है, लेकिन आपकी सूची 22k अंक लंबी होने पर 15 मिनट या इससे अधिक समय लेती है। हम अंततः 30 मिलियन अंक की सूचियों पर इसे चलाने की उम्मीद करते हैं।
मैंने के-डी पेड़ों के बारे में पढ़ा है और बुनियादी अवधारणा को समझ लिया है, लेकिन उन्हें समझने में परेशानी हुई है कि उन्हें कैसे स्क्रिप्ट करना है।
"केटी पेड़" क्या है? आपका मतलब है "के-डी पेड़"? द्वि-आयामी बिंदुओं के लिए आपको केवल [क्वाड्री] (http://en.wikipedia.org/wiki/Quadtree) की आवश्यकता है। पाइथन में क्वाडट्री कार्यान्वयन की तलाश में एक पूर्व प्रश्न था: http://stackoverflow.com/questions/6060302/pure-python-quadtree- कार्यान्वयन –
धन्यवाद! मेरा मतलब एक के-डी पेड़ था। मैं एक चौकोर पेड़ देख लूंगा। – Dlinet
['scipy.spatial'] में एक के-डी पेड़ कार्यान्वयन है (http://docs.scipy.org/doc/scipy/reference/spatial.html) मॉड्यूल –