2015-05-29 8 views
9

numpy में अनुपलब्ध मानों को चिह्नित करने के दो तरीके हैं: मैं या तो NaN या masked array का उपयोग कर सकता हूं। मैं समझता हूं कि NaNs का उपयोग (संभावित रूप से) तेज़ है जबकि मुखौटा सरणी अधिक कार्यक्षमता प्रदान करता है (कौन?)।numpy: NaN और मास्क किए गए सरणी के बीच अंतर

मुझे लगता है कि मेरा प्रश्न यह है कि अगर मुझे दूसरे पर एक का उपयोग कब करना चाहिए? में np.NaN का उपयोग केस क्या है?

मुझे यकीन है कि इस सवाल का जवाब वहाँ बाहर होना चाहिए हूँ, लेकिन मैं यह नहीं मिल सकता है ...

उत्तर

8

अंतर दो संरचनाओं द्वारा आयोजित डेटा में रहता है।

regular array with np.nan का उपयोग करके, अमान्य मानों के पीछे कोई डेटा नहीं है।

masked array का उपयोग करके, आप एक पूर्ण सरणी प्रारंभ कर सकते हैं, और उसके बाद एक मुखौटा लागू कर सकते हैं ताकि कुछ मान अमान्य दिखाई दें। ताकि आप np.nan व्यवहार से निपटने के लिए की जरूरत नहीं है numpy.ma मॉड्यूल तरीके प्रदान (उदाहरण के लिए, np.nan == np.nan हमेशा False है, आदि)

आप एक सरणी जहां अवैध कोशिकाओं में रखा मूल्यों आवश्यकता नहीं होगी है, पूर्व का प्रयोग करें। आप np.nan और कुछ अनुक्रमण तकनीकों का उपयोग करके जटिल परिचालनों को हमेशा दोहरा सकते हैं, लेकिन यह मुखौटा सरणी है।

2

क्या मैं समझता हूँ NaN कुछ भी है कि एक नंबर नहीं है का प्रतिनिधित्व करता है से, कर रहे हैं कि जब तक एक नकाबपोश सरणी के निशान मूल्यों या मान अनुपलब्ध संख्याएं लेकिन आपके डेटा सेट के लिए मान्य नहीं हैं।

मुझे उम्मीद है कि इससे मदद मिलती है।

संबंधित मुद्दे