पाइथन एरे में आइटम की घटनाओं की कुशलतापूर्वक गणना करना एक मौलिक कार्य है जिसके कई प्रभावी समाधान हैं। यह लेख दो लोकप्रिय दृष्टिकोणों का पता लगाता है: collections
मॉड्यूल का उपयोग करना और NumPy लाइब्रेरी का उपयोग करना। प्रत्येक विधि आपकी विशिष्ट आवश्यकताओं और आपके डेटा की विशेषताओं के आधार पर अलग-अलग लाभ प्रदान करती है।
विषयसूची
collections
मॉड्यूल का उपयोग करना
collections
मॉड्यूल Counter
ऑब्जेक्ट प्रदान करता है, जो किसी भी पुनरावृति में आइटमों की आवृत्ति की गणना करने के लिए एक शक्तिशाली उपकरण है। यह दृष्टिकोण विभिन्न आकारों और डेटा प्रकारों के एरे के लिए अत्यधिक बहुमुखी, पठनीय और कुशल है।
from collections import Counter
my_array = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 'a', 'a', 'b']
# Counter का उपयोग करके घटनाओं की गणना करें
occurrences = Counter(my_array)
# किसी विशिष्ट आइटम की गणना तक पहुँचें
item_to_count = 3
count = occurrences[item_to_count]
print(f"{item_to_count} की घटनाओं की संख्या है: {count}") # आउटपुट: 3
# किसी विशिष्ट आइटम (स्ट्रिंग) की गणना तक पहुँचें
item_to_count = 'a'
count = occurrences[item_to_count]
print(f"{item_to_count} की घटनाओं की संख्या है: {count}") # आउटपुट: 2
# सभी आइटमों की गणनाएँ प्रिंट करें
print(f"सभी आइटम गणनाएँ: {occurrences}")
# आउटपुट: Counter({4: 4, 3: 3, 2: 2, 1: 1, 'a': 2, 'b': 1})
यह कोड Counter
की सादगी और लचीलेपन को दर्शाता है। यह संख्यात्मक और स्ट्रिंग डेटा प्रकार दोनों को सहज रूप से संभालता है।
NumPy लाइब्रेरी का उपयोग करना
NumPy संख्यात्मक संगणना के लिए अनुकूलित है और कुशल एरे हेरफेर फ़ंक्शन प्रदान करता है। बड़े संख्यात्मक एरे के लिए, NumPy महत्वपूर्ण प्रदर्शन लाभ प्रदान करता है।
import numpy as np
my_array = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
item_to_count = 3
# बूलियन इंडेक्सिंग के साथ NumPy के count_nonzero का उपयोग करें
count = np.count_nonzero(my_array == item_to_count)
print(f"{item_to_count} की घटनाओं की संख्या है: {count}") # आउटपुट: 3
# सभी घटनाओं की गणना करें
unique, counts = np.unique(my_array, return_counts=True)
print(dict(zip(unique, counts))) # आउटपुट: {1: 1, 2: 2, 3: 3, 4: 4}
बूलियन इंडेक्सिंग के साथ संयुक्त NumPy का count_nonzero
संख्यात्मक एरे के लिए एक संक्षिप्त और उच्च प्रदर्शन वाला समाधान प्रदान करता है। np.unique
सभी अद्वितीय तत्वों की गणना प्राप्त करने का एक सुविधाजनक तरीका प्रदान करता है।
सही विधि चुनना
इष्टतम दृष्टिकोण आपके विशिष्ट संदर्भ पर निर्भर करता है:
collections.Counter
: छोटे एरे, मिश्रित डेटा प्रकार वाले एरे, या जब आपको कई आइटमों की घटनाओं की गणना कुशलतापूर्वक और स्पष्ट, पठनीय कोड के साथ करने की आवश्यकता होती है, तो सबसे अच्छा है।- NumPy: बड़े संख्यात्मक एरे के लिए आदर्श जहाँ प्रदर्शन महत्वपूर्ण है। NumPy के वेक्टरिज्ड ऑपरेशन महत्वपूर्ण गति लाभ प्रदान करते हैं।