पायथन के मूल sum
फ़ंक्शन और NumPy के numpy.sum
का उपयोग करने के बीच प्रदर्शन और व्यवहार में अंतर क्या हैं? sum
न्यूमपी के सरणी पर काम करता है और numpy.sum
पाइथन सूचियों पर काम करता है और वे दोनों एक ही प्रभावी परिणाम (ओवरफ्लो जैसे किनारे के मामलों का परीक्षण नहीं किया है) लेकिन विभिन्न प्रकारों का परीक्षण करते हैं।पायथन का योग बनाम NumPy's numpy.sum
>>> import numpy as np
>>> np_a = np.array(range(5))
>>> np_a
array([0, 1, 2, 3, 4])
>>> type(np_a)
<class 'numpy.ndarray')
>>> py_a = list(range(5))
>>> py_a
[0, 1, 2, 3, 4]
>>> type(py_a)
<class 'list'>
# The numerical answer (10) is the same for the following sums:
>>> type(np.sum(np_a))
<class 'numpy.int32'>
>>> type(sum(np_a))
<class 'numpy.int32'>
>>> type(np.sum(py_a))
<class 'numpy.int32'>
>>> type(sum(py_a))
<class 'int'>
संपादित करें: मैं अपने व्यावहारिक प्रश्न यहाँ लगता है अजगर पूर्णांकों की एक सूची पर numpy.sum
का उपयोग करके करते है किसी भी अजगर की अपनी sum
का उपयोग कर से अधिक तेजी से हो सकता है?
इसके अतिरिक्त, एक पाइथन पूर्णांक बनाम स्केलर numpy.int32
के उपयोग के प्रभाव (प्रदर्शन सहित) क्या हैं? उदाहरण के लिए, a += 1
के लिए, क्या कोई व्यवहार या प्रदर्शन अंतर है यदि a
का प्रकार एक पायथन पूर्णांक या numpy.int32
है? अगर मैं पाइथन कोड में बहुत कुछ जोड़ा या घटाया गया है, तो numpy.int32
जैसे न्यूमपी स्केलर डेटाटाइप का उपयोग करना तेज़ है।
स्पष्टीकरण के लिए, मैं जैव सूचना विज्ञान सिमुलेशन पर काम कर रहा हूं जिसमें आंशिक रूप से बहुआयामी numpy.ndarray
एस को एकल स्केलर रकम में गिरने के बाद शामिल किया जाता है जिसे बाद में संसाधित किया जाता है। मैं पाइथन 3.2 और न्यूपी 1.6 का उपयोग कर रहा हूं।
अग्रिम धन्यवाद!
+1, लेकिन क्या आपके पास ये परिणाम पीछे नहीं हैं? – dawg
@ ड्रेक, हाँ, मैंने उन्हें पीछे की तरफ देखा था। इस बारे में बताने के लिए शुक्रिया! फिक्स्ड। – Akavall
'np.array' का उपयोग करते समय आप तेजी से' np.sum' के बारे में सही हैं। लेकिन यदि आप समय 'np.sum (np.array ऑब्जेक्ट)' और 'योग (सूची वस्तु) 'करते हैं, तो दोनों लगभग समान प्रदर्शन करते हैं। – xyres