सिसि (http://www.scipy.org/) दो केडी ट्री क्लास प्रदान करता है; केडीटी और सीकेडीटी।पाइथन केडी ट्री सर्च को अनुकूलित करना
सीकेडीटी बहुत तेज है, लेकिन केडीटी (जहां तक मैं दस्तावेज़ों से कह सकता हूं) से कम अनुकूलन और क्वेरी-सक्षम है।
यहां मेरी समस्या है: मेरे पास 3 मिलियन 2 आयामी (एक्स, वाई) अंक की एक सूची है। मुझे हर बिंदु से एक्स इकाइयों की दूरी के भीतर सभी बिंदुओं को वापस करने की जरूरत है।
केडीटी के साथ, ऐसा करने का एक विकल्प है: KDtree.query_ball_tree()
यह हर दूसरे बिंदु से एक्स इकाइयों के भीतर सभी बिंदुओं की सूचियों की सूची उत्पन्न करता है। हालांकि: यह सूची बहुत बड़ी है और जल्दी से मेरी वर्चुअल मेमोरी भरती है (लगभग 744 मिलियन आइटम लंबे)।
संभावित समाधान # 1: क्या इस सूची को पाठ फ़ाइल में लिखने के तरीके को पार्स करने का कोई तरीका है?
संभावित समाधान # 2: मैं पाश के लिए और उसके बाद की खोज (सूची में हर बिंदु के लिए) एक्स इकाइयों के भीतर एक बिंदु के पड़ोसियों का उपयोग करके है कि एक का उपयोग कर की कोशिश की है: KDtree.query_ball_point()
। हालांकि: यह हमेशा के लिए लेता है क्योंकि इसे लाखों बार क्वेरी चलाने की आवश्यकता होती है। क्या इस केडीटी उपकरण के बराबर सीकेडीटी है?
संभावित समाधान # 3: मुझे मारता है, किसी और के पास कोई विचार है?
आह कि उत्कृष्ट होगा। मेरे पास स्रोत से संकलन के साथ कोई कौशल/अनुभव नहीं है, इसलिए शायद मैं इसे देख लूंगा।अन्यथा, जब तक कोई अन्य समाधान पोस्ट नहीं किया जाता है, तो मैं scipy की नई रिलीज की प्रतीक्षा करूंगा। – Dlinet
@Dlinet संस्करण 0.12 पिछले महीने जारी किया गया था। – jorgeca