संख्याओं की सूची का औसत (या माध्य) ज्ञात करना प्रोग्रामिंग में एक मौलिक कार्य है। पायथन कई तरीके प्रदान करता है, प्रत्येक अपनी ताकत और कमजोरियों के साथ। यह लेख तीन सामान्य विधियों का पता लगाता है, उनकी दक्षता और संभावित कमियों को उजागर करता है।
विषय-सूची
statistics
मॉड्यूल का उपयोग करनाsum()
औरlen()
विधियाँ- पायथन 2 में पूर्णांक भागफल को संभालना (और पायथन 3 पर एक नोट)
statistics
मॉड्यूल का उपयोग करना
सबसे मजबूत और अनुशंसित विधि पायथन के अंतर्निहित statistics
मॉड्यूल (पायथन 3.4 से उपलब्ध) का उपयोग करती है। यह मॉड्यूल mean()
फलन प्रदान करता है, जो विशेष रूप से औसत की गणना के लिए डिज़ाइन किया गया है। यह कुशल है, विभिन्न डेटा प्रकारों को सुचारू रूप से संभालता है, और आम तौर पर इसकी पठनीयता और विश्वसनीयता के लिए पसंद किया जाता है।
import statistics
numbers = [10, 20, 30, 40, 50]
average = statistics.mean(numbers)
print(f"औसत है: {average}") # आउटपुट: औसत है: 30
यह संक्षिप्त कोड स्निपेट औसत की गणना और प्रिंट करता है। statistics
मॉड्यूल अन्य मूल्यवान सांख्यिकीय फलन जैसे median()
और stdev()
भी प्रदान करता है।
sum()
और len()
विधियाँ
एक और मौलिक दृष्टिकोण अंतर्निहित sum()
और len()
कार्यों का उपयोग करता है। यह एक संक्षिप्त विधि है, जो औसत सूत्र के प्रत्यक्ष अनुप्रयोग के लिए आसानी से समझ में आती है।
numbers = [10, 20, 30, 40, 50]
average = sum(numbers) / len(numbers)
print(f"औसत है: {average}") # आउटपुट: औसत है: 30.0
पायथन 3 में, भाग संक्रियाक (/
) हमेशा फ्लोटिंग-पॉइंट भागफल करता है, सटीक परिणाम सुनिश्चित करता है। हालाँकि, पुराने पायथन संस्करणों (नीचे चर्चा की गई) में संभावित समस्याओं के प्रति सचेत रहें।
पायथन 2 में पूर्णांक भागफल को संभालना (और पायथन 3 पर एक नोट)
यदि सावधानीपूर्वक संभाला नहीं जाता है तो पूर्णांक भागफल के साथ पायथन 2 का व्यवहार गलत औसत की ओर ले जा सकता है। जब भाग संक्रियाक के दोनों ऑपरेंड पूर्णांक होते हैं, तो पायथन 2 पूर्णांक भागफल करता है, दशमलव भाग को काट देता है। इससे बचने के लिए, भागफल से पहले योग या लंबाई को स्पष्ट रूप से एक फ्लोट में बदलें।
numbers = [10, 20, 30, 40, 50]
average = sum(numbers) / float(len(numbers))
print("औसत है: %s" % average) # आउटपुट: औसत है: 30.0
यह रूपांतरण फ्लोटिंग-पॉइंट भागफल सुनिश्चित करता है, सही औसत उत्पन्न करता है। पायथन 3 में यह आवश्यक नहीं है, जहाँ /
संक्रियाक हमेशा एक फ्लोट परिणाम देता है।
संक्षेप में, जबकि कई दृष्टिकोण मौजूद हैं, इसकी स्पष्टता, दक्षता और मजबूत त्रुटि हैंडलिंग के लिए statistics.mean()
फ़ंक्शन का उपयोग करना सबसे अनुशंसित अभ्यास है। sum()
/len()
विधि को समझने से अंतर्निहित गणना में अंतर्दृष्टि मिलती है, लेकिन संभावित कमियों के बारे में जागरूकता, विशेष रूप से पायथन 2 में, महत्वपूर्ण बनी रहती है।