Table of Contents
Toggle
इटरेटिंग का मतलब है एक-एक करके तत्वों के माध्यम से जाना। जैसे कि हम NumPy में मल्टी-डायमेंशनल एरेस के साथ काम करते हैं, हम एरे के माध्यम से इटरेट करने के लिए बेसिक Python for लूप का उपयोग कर सकते हैं।
1-D एरे में, लूप एक-एक करके प्रत्येक तत्व के माध्यम से जाएगा, जबकि 2-D या अधिक-डायमेंशनल एरेस में, इटरेशन प्रत्येक पंक्ति या डायमेंशन के माध्यम से जाएगा।
जब हम 1-D एरे पर इटरेट करते हैं, तो यह एक-एक करके प्रत्येक तत्व के माध्यम से जाएगा।
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
इस उदाहरण में, लूप 1-D एरे के प्रत्येक तत्व के माध्यम से इटरेट करता है और उन्हें एक-एक करके प्रिंट करता है।
2-D एरे में, इटरेशन सभी पंक्तियों के माध्यम से एक-एक करके जाएगा।
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
इस उदाहरण में, लूप 2-D एरे की प्रत्येक पंक्ति के माध्यम से इटरेट करता है और उन्हें एक-एक करके प्रिंट करता है।
यदि आप 2-D एरे के प्रत्येक स्केलर तत्व के माध्यम से इटरेट करना चाहते हैं, तो आपको नेस्टेड लूप का उपयोग करना होगा।
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x in arr:
for y in x:
print(y)
यह उदाहरण दर्शाता है कि आप 2-D एरे के प्रत्येक स्केलर तत्व के माध्यम से कैसे इटरेट कर सकते हैं। बाहरी लूप प्रत्येक पंक्ति के माध्यम से जाता है, और आंतरिक लूप उस पंक्ति में प्रत्येक तत्व के माध्यम से जाता है।
यदि आप n-D एरेस के साथ काम कर रहे हैं, तो यह (n-1)वां डायमेंशन एक-एक करके जाएगा। प्रत्येक तत्व (स्केलर) को एक्सेस करने के लिए, आपको प्रत्येक डायमेंशन के माध्यम से इटरेट करना होगा।
NumPy में, एरेस में कई डायमेंशन्स हो सकते हैं। इन एरेस के माध्यम से इटरेटिंग को हम बुनियादी लूप्स या `nditer()` जैसी अधिक उन्नत तकनीकों का उपयोग करके कर सकते हैं। नीचे कुछ उदाहरण दिए गए हैं जो यह दिखाते हैं कि हम 3-D एरेस के माध्यम से कैसे इटरेट कर सकते हैं, और कैसे `nditer()` और `ndenumerate()` अधिक जटिल इटरेशन में मदद करते हैं।
3-D एरे में, इटरेशन प्रत्येक 2-D एरे के माध्यम से जाएगा। स्केलर मानों तक पहुँचने के लिए, आपको प्रत्येक डायमेंशन के माध्यम से इटरेट करना होगा।
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr: print(x)
इस उदाहरण में, लूप 3-D एरे के अंदर के प्रत्येक 2-D एरे के माध्यम से इटरेट करेगा।
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
for x in arr:
for y in x:
for z in y:
print(z)
यह उदाहरण यह दिखाता है कि आप 3-D एरे के प्रत्येक स्केलर मान के माध्यम से कैसे इटरेट कर सकते हैं। यह प्रत्येक 2-D एरे के माध्यम से, फिर प्रत्येक पंक्ति के माध्यम से और अंत में प्रत्येक तत्व के माध्यम से जाता है।
`nditer()` फ़ंक्शन इटरेशन के लिए एक उन्नत उपकरण है। यह एरेस के माध्यम से इटरेटिंग को सरल बनाता है, खासकर जब आप उच्च-डायमेंशनल एरेस के साथ काम कर रहे होते हैं, और यह अतिरिक्त कार्यक्षमताएँ प्रदान करता है जैसे विभिन्न डेटा प्रकारों या स्टेप साइज के साथ इटरेटिंग।
import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) for x in np.nditer(arr): print(x)
इस उदाहरण में, `np.nditer()` का उपयोग एरे के माध्यम से इटरेट करने के लिए किया जाता है, जिससे कोड को साफ और आसानी से हैंडल किया जा सकता है, बजाय इसके कि आप कई नेस्टेड फॉर लूप्स का उपयोग करें।
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']): print(x)
यह उदाहरण दिखाता है कि आप एक एरे के माध्यम से इटरेट करते समय `op_dtypes` का उपयोग करके तत्वों के डेटा प्रकार को कैसे बदल सकते हैं। इस मामले में, पूर्णांक तत्वों को स्ट्रिंग्स में परिवर्तित किया जाता है।
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
यहां, `arr[:, ::2]` का उपयोग करके एरे को स्लाइस किया जाता है और प्रत्येक पंक्ति में हर दूसरा तत्व चुना जाता है। `nditer()` फ़ंक्शन इस स्लाइस किए गए एरे के ऊपर इटरेट करता है।
कभी-कभी, इटरेट करते समय तत्व का इंडेक्स प्राप्त करना उपयोगी होता है। `ndenumerate()` फ़ंक्शन इटरेशन के दौरान तत्व का इंडेक्स और उसका मान दोनों प्रदान करता है।
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
इस उदाहरण में, `np.ndenumerate()` का उपयोग करके हम एरे पर एन्यूमरेशन करते हैं और प्रत्येक तत्व के इंडेक्स और मान को प्रिंट करते हैं।
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for idx, x in np.ndenumerate(arr): print(idx, x)
यहां, `np.ndenumerate()` का उपयोग करके हम 2D एरे के तत्वों पर एन्यूमरेशन करते हैं और प्रत्येक तत्व के इंडेक्स और मान को प्रिंट करते हैं।
