द्वि-आयामी सरणियाँ, या मैट्रिक्स, प्रोग्रामिंग में मौलिक डेटा संरचनाएँ हैं, विशेष रूप से छवि प्रसंस्करण, रैखिक बीजगणित और गेम विकास जैसे कार्यों के लिए महत्वपूर्ण हैं। जबकि पायथन में कुछ भाषाओं (जैसे, C++) की तरह कोई अंतर्निहित 2D सरणी प्रकार नहीं है, यह उन्हें बनाने और हेरफेर करने के कई कुशल और सुंदर तरीके प्रदान करता है। यह लेख तीन लोकप्रिय दृष्टिकोणों का पता लगाता है: सूची समझ, नेस्टेड लूप और शक्तिशाली NumPy लाइब्रेरी।
विषयवस्तु की तालिका
सूची समझ विधि
सूची समझ 2D सरणियाँ बनाने का एक संक्षिप्त और पायथोनिक तरीका प्रदान करती है, विशेष रूप से सूत्रों या पैटर्न से उत्पन्न मानों के साथ आरंभ करते समय फायदेमंद है। यह नेस्टेड सूची समझ का उपयोग करता है, बाहरी लूप पंक्तियों को संभालता है और आंतरिक लूप स्तंभों को संभालता है।
# शून्यों से भरी 3x4 सरणी
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d) # आउटपुट: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# पंक्ति और स्तंभ अनुक्रमणिकाओं के आधार पर मानों वाली 3x3 सरणी
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d) # आउटपुट: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
# यादृच्छिक संख्याओं वाली 2x2 सरणी (random आयात करने की आवश्यकता है)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # आउटपुट: (उदाहरण) [[7, 2], [9, 5]]
नेस्टेड लूप विधि
यह दृष्टिकोण range
के साथ नेस्टेड for
लूप का उपयोग करता है, सरणी को तत्व दर तत्व बनाने के लिए पंक्तियों और स्तंभों के माध्यम से पुनरावृति करता है। यह सूची समझ की तुलना में अधिक विस्तृत है लेकिन शुरुआती लोगों के लिए समझना आसान हो सकता है।
rows = 3
cols = 4
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0) # या कोई अन्य आरंभिक मान
array_2d.append(row)
print(array_2d) # आउटपुट: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
rows = 3
cols = 3
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(i*cols + j) #क्रमागत संख्याओं से भरने का उदाहरण
array_2d.append(row)
print(array_2d) # आउटपुट: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
NumPy सरणियाँ
NumPy पायथन में संख्यात्मक संगणना के लिए एक शक्तिशाली लाइब्रेरी है। इसका numpy.array()
फ़ंक्शन बहु-आयामी सरणियों का कुशल निर्माण और हेरफेर प्रदान करता है। संख्यात्मक संचालन के लिए NumPy सरणियाँ पायथन सूचियों की तुलना में काफी तेज प्रदर्शन प्रदान करती हैं।
import numpy as np
# शून्यों से भरी 3x4 सरणी
array_2d = np.zeros((3, 4))
print(array_2d)
# एक से भरी 3x3 सरणी
array_2d = np.ones((3, 3))
print(array_2d)
# किसी विशिष्ट मान से भरी 2x2 सरणी
array_2d = np.full((2, 2), 7)
print(array_2d)
# 3x3 इकाई मैट्रिक्स
array_2d = np.eye(3)
print(array_2d)
# 0 और 1 के बीच यादृच्छिक संख्याओं वाली 2x3 सरणी
array_2d = np.random.rand(2, 3)
print(array_2d)
# 1 और 10 के बीच यादृच्छिक पूर्णांकों वाली 2x2 सरणी
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)
NumPy विभिन्न मानों और पैटर्न के साथ सरणियों को आरंभ करने के लिए विभिन्न प्रकार के कार्य प्रदान करता है, जिससे यह 2D सरणियों से जुड़े संख्यात्मक संगणनाओं के लिए पसंदीदा विकल्प बन जाता है। इन कार्यों का उपयोग करने से पहले import numpy as np
याद रखें।