NumPy पायथन में संख्यात्मक अभिकलन के लिए एक आधारभूत लाइब्रेरी है, जो कुशल सरणी हेरफेर के लिए शक्तिशाली उपकरण प्रदान करती है। यह ट्यूटोरियल दो मूलभूत अवधारणाओं में तल्लीन करता है: अंकगणितीय संक्रियाएँ और ब्रॉडकास्टिंग, संक्षिप्त और उच्च-प्रदर्शन वाले संख्यात्मक कोड लिखने के लिए आवश्यक हैं।
विषयवस्तु की तालिका
1. अंकगणितीय संक्रियाएँ
NumPy सहज रूप से पायथन के अंकगणितीय संचालकों (+, -, *, /, //, %, **) को सीधे NumPy सरणियों पर संचालित करने के लिए विस्तारित करता है। ये संक्रियाएँ तत्व-वार हैं, जिसका अर्थ है कि वे सरणियों में संगत तत्वों पर लागू होती हैं। आइए उदाहरणों के साथ समझाते हैं:
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])
print("योग:", arr1 + arr2) # आउटपुट: [ 6 8 10 12]
print("घटाव:", arr1 - arr2) # आउटपुट: [-4 -4 -4 -4]
print("गुणन:", arr1 * arr2) # आउटपुट: [ 5 12 21 32]
print("भाग:", arr1 / arr2) # आउटपुट: [0.2 0.33333333 0.42857143 0.5 ]
print("पूर्णांक भाग:", arr1 // arr2) # आउटपुट: [0 0 0 0]
print("माड्यूलो:", arr1 % arr2) # आउटपुट: [1 2 3 4]
print("घातांक:", arr1 ** arr2) # आउटपुट: [ 1 64 2187 65536]
यह तत्व-वार संक्रिया बहु-आयामी सरणियों तक सहजता से विस्तारित होती है।
2. ब्रॉडकास्टिंग
ब्रॉडकास्टिंग एक शक्तिशाली NumPy सुविधा है जो विशिष्ट शर्तों के तहत अलग-अलग आकारों की सरणियों के बीच संक्रियाओं को सक्षम बनाती है। यह स्पष्ट लूपिंग की आवश्यकता को समाप्त करता है, जिससे प्रदर्शन में काफी वृद्धि होती है। ब्रॉडकास्टिंग के मुख्य नियम हैं:
- नियम 1: यदि सरणियों की विमाएँ असमान हैं, तो छोटी सरणी के आकार को प्रमुख 1 से पहले जोड़ा जाता है जब तक कि यह बड़ी सरणी की आयामिता से मेल नहीं खाता।
- नियम 2: यदि किसी सरणी की विमा का आकार 1 है और दूसरी सरणी की विमा 1 से अधिक है, तो आकार-1 विमा को बड़ी विमा से मिलान करने के लिए बढ़ाया जाता है।
- नियम 3: यदि सरणियों की विमाएँ भिन्न हैं और न तो आकार 1 है, तो एक
ValueError
उठाया जाता है।
आइए ब्रॉडकास्टिंग को प्रदर्शित करते हैं:
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([10, 20, 30])
result = arr1 + arr2 # ब्रॉडकास्टिंग क्रिया में
print(result)
# आउटपुट:
# [[11 22 33]
# [14 25 36]]
यहाँ, arr2
(आकार (3,)) को arr1
के आकार (2, 3) से मिलान करने के लिए प्रसारित किया जाता है। arr1
की प्रत्येक पंक्ति को arr2
में जोड़ा जाता है, स्पष्ट लूपिंग से बचा जाता है। कुशल और पठनीय NumPy कोड लिखने के लिए ब्रॉडकास्टिंग में महारथ प्राप्त करना महत्वपूर्ण है। अप्रत्याशित परिणामों या त्रुटियों से बचने के लिए हमेशा सरणी के आकार पर ध्यान से विचार करें।