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

NumPy Python में बेसिक स्लाइसिंग और एडवांस्ड इंडेक्सिंग

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

तीन प्रकार के अनुक्रमण उपलब्ध हैं -

  • फ़ील्ड एक्सेस
  • मूल टुकड़ा करना
  • उन्नत अनुक्रमण

किस प्रकार का अनुक्रमण होगा, यह 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) बनाया। फिर स्टार्ट, स्टॉप और स्टेप वैल्यू असाइन करके एक स्लाइस ऑब्जेक्ट बनाया जाता है। जब हम स्लाइस ऑब्जेक्ट को ndarray में पास करते हैं, तो हमें 4 के चरण के साथ 2 से 21 तक इंडेक्स से शुरू होने वाले एरे का हिस्सा (स्लाइस) मिलता है।

उपरोक्त प्रोग्राम को लिखने का दूसरा तरीका,

# Another way to write above program
import numpy as np
arr = np.arange(25)
s = arr[2:21:4]
print (s)
के रूप में numpy आयात करें

आउटपुट

[ 2 6 10 14 18]

एकल आइटम को स्लाइस करें

#Slice single item from an array
import numpy as np
arr = np.arange(10)
s = arr[9]
print(s)
के रूप में आयात करें

आउटपुट

9

अनुक्रमणिका से शुरू होने वाले स्लाइस आइटम

#slice item starting from index
import numpy as np
arr = np.arange(10)
s = arr[3:]
print(s)

आउटपुट

[3 4 5 6 7 8 9]

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

#slice item between indexes
import numpy as np
arr = np.arange(10)
s = arr[3: 7]
print(s)
के रूप में numpy आयात करें

आउटपुट

[3 4 5 6]

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

#slice item between indexes
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 array बनाने के कई तरीके हैं। Numpy एक ndarray को 1Darray में बदलने के दो अलग-अलग प्रकार प्रदान करता है:वह है फ़्लैटन () विधि का उपयोग करना और दूसरा ravel () विधि का उपयोग करना। उदाहरण #Import required library, numpy import numpy as np #create an array from a list arr = np.array( [ (2, 7, 3,

  1. पायथन मूल तिथि और समय के प्रकार

    पायथन में दिनांक और समय में हेरफेर करने के लिए डेटाटाइम नामक एक मॉड्यूल होता है। दिनांक और समय की वस्तुएँ दो प्रकार की होती हैं। प्रकार भोले और जागरूक हैं। भोली वस्तु में, इस वस्तु को अन्य दिनांक-समय की वस्तुओं से स्पष्ट रूप से खोजने के लिए पर्याप्त जानकारी नहीं है। इस दृष्टिकोण में यह कोऑर्डिनेट य

  1. पायथन का उपयोग करके एक सरणी सूची में 0 और 1 को अलग करें?

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