मानक अजगर 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])