मैं ismember का उपयोग कर एक विशेष Matlab कोडिंग "पैटर्न" के लिए एक Numpy समकक्ष खोजने के लिए संघर्ष कर रहा हूँ।मैटलैब 'एम्म्बर' समकक्ष (पायथन) में समतुल्य?
दुर्भाग्यवश यह कोड तब होता है जहां अधिकांश समय मेरी मैटलैब स्क्रिप्ट में बिताया जाता है, इसलिए मैं एक कुशल Numpy समकक्ष खोजना चाहता हूं।
मूल पैटर्न में एक बड़े ग्रिड पर सबसेट मैप करने का होता है। मेरे पास समानांतर सरणी के रूप में संग्रहीत प्रमुख मूल्य जोड़े का एक सेट है और मैं इन मानों को उसी तरह से संग्रहीत प्रमुख मूल्य जोड़े की एक बड़ी सूची में सम्मिलित करना चाहता हूं।
कंक्रीटनेस के लिए कहता है कि मेरे पास तिमाही जीडीपी डेटा है जो मैं मासिक समय ग्रिड पर मैप करता हूं।
quarters = [200712 200803 200806 200809 200812 200903];
gdp_q = [10.1 10.5 11.1 11.8 10.9 10.3];
months = 200801 : 200812;
gdp_m = NaN(size(months));
[tf, loc] = ismember(quarters, months);
gdp_m(loc(tf)) = gdp_q(tf);
ध्यान रखें कि सभी तिमाहियों महीनों इसलिए दोनों tf और loc चर आवश्यक हैं की सूची में प्रकट।
मैं StackOverflow पर इसी तरह के सवाल को देखा है लेकिन वे या तो केवल शुद्ध पायथन समाधान (here) या जहां numpy तो प्रयोग किया जाता है loc तर्क वापस नहीं किए गए (here) दे।
मेरे विशेष आवेदन क्षेत्र में, यह विशेष कोड पैटर्न बार-बार उठता है और मेरे कार्यों के अधिकांश CPU समय का उपयोग करता है, इसलिए यहां एक कुशल समाधान मेरे लिए वास्तव में महत्वपूर्ण है।
टिप्पणियां या पुन: डिजाइन सुझावों का भी स्वागत है।
यदि आप इसे स्वयं लागू करेंगे, तो निम्नलिखित के बाद: 1. वस्तुओं के लिए हैश लेते हैं, आपके पास पहले से ही संख्याएं हैं - उन्हें क्रमबद्ध करें और बाइनरी खोज का उपयोग करें। 2. एक अन्य दृष्टिकोण - हैशप – Mikhail
का उपयोग करें मुझे लगता है कि यह [एलेक्स मार्टेलि द्वारा जवाब] (http://stackoverflow.com/questions/1273041/how-can-i-implement-matlabs-ismember-command-in-python/1273815# 1273815) सबसे अच्छा है जो आप प्राप्त कर सकते हैं। –