में लंबे समय तक (> 20 मिलियन तत्व) सरणी सारांश, मैं अजगर और नुकीले के लिए नया हूं इसलिए कृपया मुझे क्षमा करें यदि यह समस्या इतनी प्राथमिक है! मैं नकारात्मक मूल्यों की एक सरणी है (यह सॉर्ट हो जाता है):पाइथन numpy
>>>neg
[ -1.53507843e+02 -1.53200012e+02 -1.43161987e+02 ..., -6.37326136e-1 -3.97518490e-10 -3.73480691e-10]
>>>neg.shape
(12922508,)
मैं बंटन का मानक विचलन को खोजने के लिए अपने डुप्लीकेट (लेकिन सकारात्मक मूल्यों के साथ) को यह सरणी जोड़ने की जरूरत है शून्य करने के लिए औसत। तो मैं निम्न कार्य करें:
>>>pos=-1*neg
>>>pos=pos[::-1] #Just to make it look symmetric for the display bellow!
>>>total=np.hstack((neg,pos))
>>>total
[-153.50784302 -153.20001221 -143.1619873 ..., 143.1619873 153.20001221 153.50784302]
>>>total.shape
(25845016,)
अब तक सब कुछ बहुत अच्छा है, लेकिन अजीब बात यह है कि इस नए सरणी का योग शून्य नहीं है:
>>>numpy.sum(total)
11610.6
मानक विचलन भी पर नहीं है सब कुछ जो मैं उम्मीद कर रहा था, लेकिन मुझे लगता है कि उस समस्या की जड़ इस तरह की है: योग का परिणाम शून्य में क्यों नहीं है?
जब मैं इस विधि को एक छोटी सरणी पर लागू करता हूं; उदाहरण के लिए [-5, -3, -2] योग शून्य हो जाता है। तो मुझे लगता है कि समस्या सरणी (20 मिलियन से अधिक तत्वों) की लंबाई में निहित है। क्या इस समस्या से निपटने का कोई तरीका है?
यदि कोई इस पर मेरी सहायता कर सकता है तो मैं सबसे आभारी हूं।
क्या 'math.fsum (कुल) 'वापसी' 0' है? – jfs
हां यह करता है !!! वाह!!! तुम्हारा मतलब है कि मुझे बिल्कुल नम्रता का उपयोग नहीं करना चाहिए था, मैं गलत धारणा में था कि अरेरे पर काम करने के लिए numpy सबसे अच्छा उपकरण है !!! लेकिन http://docs.python.org/py3k/library/math.html#module-math में देखकर मुझे मानक विचलन की गणना के लिए कोई टूल नहीं दिख रहा है। आप क्या प्रस्तावित करेंगे? – makhlaghi
नहीं 'fsum() 'केवल एक सैनिटी जांच के लिए है कि संक्षेपण के दौरान सटीकता को खोने के अलावा आपके कोड में कुछ अन्य बग नहीं है। ['numpy.std()'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html) मानक विचलन के लिए उपयोग किया जा सकता है। 'Np.std (कुल, dtype = np.float64) 'आज़माएं। – jfs