में numpy/scipy का उपयोग करके सरणी में अनइंघॉल करें- मेरे पास एनपीएएम सरणी है जो मैं लॉग इन करने से पहले ऋणात्मक प्रविष्टियों को लॉग इन करना चाहता हूं और उनको अनदेखा कर दूंगा। जब मैं नकारात्मक प्रविष्टियों का लॉग लेता हूं, तो यह वापस आता है - अगर, तो परिणामस्वरूप कुछ -Inf मानों के साथ मैट्रिक्स होगा। मैं फिर इस मैट्रिक्स के कॉलम पर योग करना चाहता हूं, लेकिन -Inf मानों को अनदेखा करना - मैं यह कैसे कर सकता हूं?पायथन
उदाहरण के लिए,
mylogarray = log(myarray)
# take sum, but ignore -Inf?
sum(mylogarray, 0)
मुझे पता है कि nansum है और मैं बराबर, infsum की तरह कुछ की जरूरत है।
धन्यवाद।
क्या आप इस पर विस्तार कर सकते हैं? मैं उदाहरण समझ में नहीं आता। आपने उपरोक्त मुखौटा सरणी कैसे शुरू की? – user248237dfsf
@ user248237 - 'numpy.ma.log', आदि, फ़ंक्शंस स्वचालित रूप से एक मुखौटा सरणी बनायेगा जहां कुछ भी 'inf' या' nan' में परिणाम होता है। यह थोड़ा सा स्पष्ट है, हालांकि, आप इसके बजाय ऐसा कर सकते हैं: 'a = np.ma.masked_where (a == np.inf, a) ', और फिर बस' b = np.log (ए)' (या कोई अन्य समारोह)। वैकल्पिक रूप से, आप मुखौटा सरणी से बच सकते हैं और बस 'np.log (a [a! = Np.inf])। Sum() '(आप बूलियन सरणी द्वारा अनुक्रमित कर सकते हैं, यह' फ़िल्टर'-आधारित 'से अधिक स्वच्छ और तेज़ है उत्तर।) –
@ user248237 मैंने मुखौटा सरणी को स्पष्ट रूप से प्रारंभ नहीं किया था। 'ए' सिर्फ एक सामान्य, गैर-मुखौटा सरणी है। 'ma.log' सभी मानों को मुखौटा करता है जहां (असली) लॉगरिदम अनिर्धारित है। फिर परिणामस्वरूप मुखौटा सरणी 'बी' का मोटे तौर पर इलाज किया जाता है जैसे कि मुखौटा प्रविष्टियां वहां नहीं थीं। – Philipp