NumPy के साथ प्रभावी डेटा प्रोसेसिंग के लिए सरणी आकारों में कुशलतापूर्वक हेरफेर करना मौलिक है। यह ट्यूटोरियल NumPy सरणियों को आकार देने और आकार बदलने के लिए दो मुख्य कार्यों में तल्लीन करता है: reshape()
और resize()
। हम उनकी कार्यक्षमता, सूक्ष्म अंतर और सर्वोत्तम प्रथाओं का पता लगाएंगे ताकि आप अपने डेटा विज्ञान प्रोजेक्ट्स में उनका आत्मविश्वास से उपयोग कर सकें।
विषयवस्तु की तालिका
1. numpy.reshape()
numpy.reshape()
फलन एक बहुमुखी उपकरण है जो अंतर्निहित डेटा को बदले बिना NumPy सरणी के आकार को संशोधित करने के लिए प्रयोग किया जाता है। इसके लिए सरणी और वांछित नए आकार को इनपुट के रूप में आवश्यक है। महत्वपूर्ण रूप से, नया आकार मूल सरणी के आकार के साथ संगत होना चाहिए (तत्वों की कुल संख्या अपरिवर्तित रहनी चाहिए)।
import numpy as np
arr = np.arange(12) # एक सरणी [0, 1, 2, ..., 11] बनाता है
print("मूल सरणी:n", arr)
reshaped_arr = np.reshape(arr, (3, 4)) # 3x4 मैट्रिक्स में आकार बदलें
print("nआकार बदली हुई सरणी:n", reshaped_arr)
#स्वत: आयाम गणना के लिए -1 का उपयोग करना
auto_reshape = np.reshape(arr, (-1, 3))
print("nस्वतः आकार बदली हुई सरणी:n", auto_reshape)
#असंगत आकारों के लिए त्रुटि संचालन
try:
invalid_reshape = np.reshape(arr, (2,7))
print(invalid_reshape)
except ValueError as e:
print(f"nत्रुटि: {e}")
2. ndarray.reshape()
ndarray.reshape()
विधि एक वैकल्पिक दृष्टिकोण प्रदान करती है, जो सीधे मौजूदा ndarray
ऑब्जेक्ट पर काम करती है। इसकी कार्यक्षमता numpy.reshape()
के समान है; केवल अंतर आह्वान की विधि में है।
arr = np.arange(12)
reshaped_arr = arr.reshape((4, 3)) # विधि कॉल
print("nआकार बदली हुई सरणी (विधि कॉल):n", reshaped_arr)
3. साझा स्मृति विचार
numpy.reshape()
और ndarray.reshape()
दोनों आम तौर पर इन-प्लेस संचालित होते हैं। इसका मतलब है कि वे सरणी डेटा की प्रतिलिपि नहीं बनाते हैं; इसके बजाय, वे अंतर्निहित डेटा के दृश्य को संशोधित करते हैं। यह अत्यधिक मेमोरी-कुशल है। आकार बदली हुई सरणी में परिवर्तन मूल में परिलक्षित होते हैं, और इसके विपरीत। हालाँकि, इसके लिए सावधानीपूर्वक विचार की भी आवश्यकता है, खासकर यदि आपको मूल सरणी की सामग्री को संरक्षित करने की आवश्यकता है। एक प्रतिलिपि बनाने के लिए, .copy()
विधि का उपयोग करें:
arr = np.arange(12)
reshaped_arr = arr.reshape((3,4))
reshaped_arr[0,0] = 99 # मूल सरणी को भी संशोधित करता है!
print("nआकार बदलने के बाद मूल सरणी:n", arr)
arr = np.arange(12)
reshaped_arr_copy = arr.reshape((3,4)).copy() #एक प्रतिलिपि बनाता है
reshaped_arr_copy[0,0] = 100 # केवल प्रतिलिपि को संशोधित करता है
print("nप्रतिलिपि संशोधन के बाद मूल सरणी:n", arr)
4. numpy.resize()
numpy.resize()
फलन सरणी के आकार को बदलने की क्षमता प्रदान करता है, reshape()
के विपरीत, जो तत्वों की कुल संख्या को संरक्षित करता है। resize()
तत्वों की संख्या को बदल सकता है। यदि नया आकार बड़ा है, तो सरणी शून्य या दोहराए गए तत्वों से भरी जाती है। यदि छोटा है, तो तत्व काटे जाते हैं। महत्वपूर्ण रूप से, resize()
*हमेशा* एक नई सरणी देता है; यह मूल को इन-प्लेस में संशोधित नहीं करता है।
arr = np.arange(5)
resized_arr = np.resize(arr, (8,)) # आकार 8 तक बदलें
print("nआकार बदली हुई सरणी (शून्य से भरी हुई):n", resized_arr)
resized_arr_2 = np.resize(arr,(2,)) #आकार 2 तक बदलें
print("nआकार बदली हुई सरणी (काटी गई):n", resized_arr_2)
resized_arr_3 = np.resize(arr, (2,3)) #2x3 तक आकार बदलें, सरणी को दोहराएगा
print("nआकार बदली हुई सरणी (दोहराई गई):n", resized_arr_3)
यह ट्यूटोरियल NumPy सरणियों को आकार देने और आकार बदलने का एक व्यापक अवलोकन प्रदान करता है। वैज्ञानिक कंप्यूटिंग और डेटा विज्ञान में कुशल डेटा हेरफेर के लिए इन तकनीकों में महारत हासिल करना महत्वपूर्ण है।