Python Programming

Python सरणियों में आइटम की आवृत्ति की कुशल गणना

Spread the love

पाइथन एरे में आइटम की घटनाओं की कुशलतापूर्वक गणना करना एक मौलिक कार्य है जिसके कई प्रभावी समाधान हैं। यह लेख दो लोकप्रिय दृष्टिकोणों का पता लगाता है: 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 के वेक्टरिज्ड ऑपरेशन महत्वपूर्ण गति लाभ प्रदान करते हैं।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *