Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

NumPy पायथन में बेसिक स्लाइसिंग और एडवांस्ड इंडेक्सिंग

ndarrays की इंडेक्सिंग मानक पायथन x[obj] सिंटैक्स का उपयोग करके की जा सकती है, जहां x सरणी है और obj चयन है।

तीन प्रकार की इंडेक्सिंग उपलब्ध हैं:

  • फील्ड एक्सेस
  • बेसिक स्लाइसिंग
  • एडवांस्ड इंडेक्सिंग

किस प्रकार की इंडेक्सिंग होगी यह obj पर निर्भर करता है। इस खंड में, हम मुख्य रूप से बेसिक स्लाइसिंग और एडवांस्ड इंडेक्सिंग पर ध्यान केंद्रित करने जा रहे हैं।

हम एडवांस्ड इंडेक्सिंग को दो भागों में विभाजित कर सकते हैं:

  • इंटीजर सरणी इंडेक्सिंग
  • बूलियन इंडेक्सिंग

बेसिक स्लाइसिंग

स्लाइसिंग की पायथन बुनियादी अवधारणा को n आयामों में बेसिक स्लाइसिंग में विस्तारित किया गया है। पायथन स्लाइस ऑब्जेक्ट की तरह जिसे स्लाइस फ़ंक्शन को स्टार्ट, स्टॉप और स्टेप पैरामीटर देकर बनाया जाता है। विशिष्ट आउटपुट प्राप्त करने के लिए, स्लाइस ऑब्जेक्ट को सरणी के एक भाग को निकालने के लिए सरणी में पास किया जाता है।

उदाहरण 1

import numpy as np
arr = np.arange(25)
s = slice(2, 21, 4)
print(arr[s])

आउटपुट

[ 2  6 10 14 18]

उपरोक्त उदाहरण में, हमने पहले arange() फ़ंक्शन का उपयोग करके एक ndarray ऑब्जेक्ट (arr) बनाया। फिर एक स्लाइस ऑब्जेक्ट बनाया गया जिसमें स्टार्ट, स्टॉप और स्टेप मान असाइन किए गए (s)। जब हमने स्लाइस ऑब्जेक्ट को ndarray में पास किया, तो हमें इंडेक्स 2 से शुरू होकर 21 तक 4 के स्टेप के साथ सरणी का भाग (स्लाइस) मिला।

उपरोक्त प्रोग्राम को लिखने का एक और तरीका:

# उपरोक्त प्रोग्राम लिखने का एक और तरीका
import numpy as np
arr = np.arange(25)
s = arr[2:21:4]
print(s)

आउटपुट

[ 2  6 10 14 18]

एकल आइटम स्लाइस करना

# सरणी से एकल आइटम स्लाइस करें
import numpy as np
arr = np.arange(10)
s = arr[9]
print(s)

आउटपुट

9

इंडेक्स से शुरू होने वाले आइटम स्लाइस करना

# इंडेक्स से शुरू होने वाले आइटम स्लाइस करें
import numpy as np
arr = np.arange(10)
s = arr[3:]
print(s)

आउटपुट

[3 4 5 6 7 8 9]

इंडेक्स के बीच आइटम स्लाइस करना

# इंडेक्स के बीच आइटम स्लाइस करें
import numpy as np
arr = np.arange(10)
s = arr[3:7]
print(s)

आउटपुट

[3 4 5 6]

उपरोक्त दो विधियों को बहु-आयामी ndarray पर भी लागू किया जाएगा, जैसे नीचे:

# इंडेक्स के बीच आइटम स्लाइस करें
import numpy as np
arr = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9]]])
s = arr[1:]
print(s)

आउटपुट

[[[4] [5] [6]] [[7] [8] [9]]]

एडवांस्ड इंडेक्सिंग

इंटीजर सरणी इंडेक्सिंग:

आइए पूर्णांकों के साथ एक साधारण सरणी बनाएं:

arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr)

आउटपुट

[[1 2] [3 4] [5 6]]

आइए सरणी से एक विशिष्ट तत्व चुनने का प्रयास करें, जैसे बहु-आयामी ndarray से रो इंडेक्स [0, 1, 2] और कॉलम इंडेक्स [1, 0, 1] वाले तत्व।

import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
s = arr[[0, 1, 2], [1, 0, 1]]
print(s)

आउटपुट

[2 3 6]

0 इंडेक्स के साथ चयन करने से आपको पहली पंक्ति मिलेगी:

>>> arr = np.array([[1, 2], [3, 4], [5, 6]])
>>> print(arr[0])
[1 2]

इसी तरह, हम सरणी से एकल आइटम चुन सकते हैं, उदाहरण के लिए - 1 को रो इंडेक्स और 1 को कॉलम इंडेक्स तत्व के रूप में चुनें जो सरणी मान 4 देता है।

>>> print(arr[[1], [1]])
[4]

हम जोड़ जैसे अंकगणितीय संचालन कर सकते हैं और जोड़ करने के बाद किसी विशेष इंडेक्स का मान वापस कर सकते हैं।

>>> print(arr[[1], [1]] + 1)
[5]

जैसा कि हम देख सकते हैं इंडेक्स मान 1 से बढ़ जाता है लेकिन वास्तविक सरणी वही रहती है।

>>> arr
array([[1, 2], [3, 4], [5, 6]])

लेकिन हम सरणी के मानों को बदल सकते हैं और सरणी की नई प्रति वापस कर सकते हैं।

>>> arr[[1], [1]] += 1
>>> arr
array([[1, 2], [3, 5], [5, 6]])

बूलियन इंडेक्सिंग

हम बूलियन इंडेक्सिंग का उपयोग तब करते हैं जब परिणाम बूलियन ऑपरेशन का परिणाम होने वाला होता है।

>>> arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
>>> arr
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])

उन मानों को लौटाता है जो 1 हैं।

>>> arr[arr == 1]
array([1])

उन मानों को लौटाता है जो सम संख्याएं हैं।

>>> arr[arr % 2 == 0]
array([ 0,  2,  4,  6,  8, 10])
  1. - NumPy में flatten() और ravel() के बीच अंतर

    NumPy सरणी बनाने के कई तरीके हैं। NumPy एक ndarray को 1D सरणी में बदलने के लिए दो अलग-अलग तरीके प्रदान करता है: flatten() विधि और ravel() विधि। उदाहरण # आवश्यक लाइब्रेरी आयात करें, numpy import numpy as np # सूची से एक सरणी बनाएं arr = np.array([(2, 7, 3, 4), (5, 6, 9, 1)]) # flatten आउटपुट prin

  1. - पायथन बेसिक डेट और टाइम टाइप्स

    पायथन में डेट्स और टाइम्स को मैनिपुलेट करने के लिए datetime नामक एक मॉड्यूल है। डेट और टाइम ऑब्जेक्ट्स के दो प्रकार हैं। प्रकार हैं naïve और aware। naïve ऑब्जेक्ट में, इस ऑब्जेक्ट को अन्य डेट-टाइम ऑब्जेक्ट्स से स्पष्ट रूप से पता लगाने के लिए पर्याप्त जानकारी नहीं होती है। इस दृष्टिकोण में यह कोऑर्ड

  1. - पायथन का उपयोग करके सरणी सूची में 0 और 1 को पृथक करना

    समस्या विवरण लिस्ट कॉम्प्रिहेंशन पायथन में एक लोकप्रिय तकनीक है। यहां हम इस तकनीक का उपयोग करते हैं। हम एक यूजर इनपुट सरणी बनाते हैं और सरणी के तत्व यादृच्छिक क्रम में 0 और 1 होने चाहिए। फिर 0 को बाईं ओर और 1 को दाईं ओर पृथक करें। हम सरणी को पार करते हैं और दो अलग-अलग सूचियां अलग करते हैं, एक में 0