Numpy.digitize() का उपयोग करके python में वेरिएबल्स को कैसे समूहित करें


अक्सर आपको Python में किसी वेरिएबल के मानों को “bins” में डालने में रुचि हो सकती है।

सौभाग्य से, numpy.digitize() फ़ंक्शन का उपयोग करके ऐसा करना आसान है, जो निम्नलिखित सिंटैक्स का उपयोग करता है:

numpy.digitize(x, डिब्बे, दाएँ=गलत)

सोना:

  • x: समूह से सारणी।
  • डिब्बे: डिब्बे की श्रृंखला।
  • दाएं: इंगित करता है कि अंतराल में बिन का दायां या बायां किनारा शामिल है या नहीं। डिफ़ॉल्ट रूप से, अंतराल में दायां किनारा शामिल नहीं है।

यह ट्यूटोरियल इस फ़ंक्शन के व्यावहारिक उपयोग के कई उदाहरण दिखाता है।

उदाहरण 1: सभी मानों को दो डिब्बे में रखें

निम्नलिखित कोड दिखाता है कि किसी सरणी के मानों को दो बिन में कैसे रखा जाए:

  • 0 यदि x <20
  • 1 यदि x ≥ 20
 import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[20])

array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])

उदाहरण 2: सभी मानों को तीन बिनों में रखें

निम्नलिखित कोड दिखाता है कि किसी सरणी के मानों को तीन बिनों में कैसे रखा जाए:

  • 0 यदि x < 10
  • 1 यदि 10 ≤ x <20
  • 2 यदि x ≥ 20
 import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

ध्यान दें कि यदि हम सही = सही निर्दिष्ट करते हैं तो मान निम्नलिखित बिन में रखे जाएंगे:

  • 0 यदि x ≤ 10
  • 1 यदि 10 < x ≤ 20
  • 2 यदि x > 20

प्रत्येक अंतराल में बिन का दायां किनारा शामिल होगा। यह है जो ऐसा लग रहा है:

 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20], right= True )

array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])

उदाहरण 3: सभी मानों को चार बिनों में रखें

निम्नलिखित कोड दिखाता है कि किसी सरणी के मानों को तीन बिनों में कैसे रखा जाए:

  • 0 यदि x < 10
  • 1 यदि 10 ≤ x <20
  • 2 यदि 20 ≤ x < 30
  • 3 यदि x ≥ 30
 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20, 30])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])

उदाहरण 4: प्रत्येक बिन की आवृत्ति की गणना करें

एक अन्य उपयोगी NumPy फ़ंक्शन जो numpy.digitize() फ़ंक्शन को पूरक करता है वह numpy.bincount() फ़ंक्शन है, जो प्रत्येक बिन की आवृत्तियों की गणना करता है।

निम्नलिखित कोड दिखाता है कि किसी सरणी के मानों को तीन समूहों में कैसे रखा जाए, फिर प्रत्येक समूह की आवृत्ति की गणना कैसे करें:

 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
bin_data = np. digitize (data, bins=[10, 20])

#view binned data
bin_data

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

#count frequency of each bin
n.p. bincount (bin_data)

array([4, 2, 5])

आउटपुट हमें बताता है कि:

  • बिन “0” में 4 डेटा मान हैं।
  • बिन “1” में 2 डेटा मान हैं।
  • बिन “2” में 5 डेटा मान हैं।

यहां अधिक पायथन ट्यूटोरियल खोजें।

एक टिप्पणी जोड़ने

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