NumPy ऐरे रीशेपिंग
सरणियों को फिर से आकार देना
रीशेपिंग का अर्थ है किसी सरणी के आकार को बदलना।
एक सरणी का आकार प्रत्येक आयाम में तत्वों की संख्या है।
दोबारा आकार देकर हम प्रत्येक आयाम में आयामों को जोड़ या हटा सकते हैं या तत्वों की संख्या बदल सकते हैं।
1-डी से 2-डी . तक फिर से आकार दें
उदाहरण
निम्नलिखित 1-डी सरणी को 12 तत्वों के साथ 2-डी सरणी में कनवर्ट करें।
सबसे बाहरी आयाम में 4 सरणियाँ होंगी, जिनमें से प्रत्येक में 3 तत्व होंगे:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12])
newarr = arr.reshape(4, 3)
print(newarr)
1-डी से 3-डी . तक फिर से आकार दें
उदाहरण
निम्नलिखित 1-डी सरणी को 12 तत्वों के साथ 3-डी सरणी में कनवर्ट करें।
सबसे बाहरी आयाम में 2 सरणियाँ होंगी जिनमें 3 सरणियाँ होंगी, प्रत्येक में 2 तत्व होंगे:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12])
newarr = arr.reshape(2, 3, 2)
print(newarr)
क्या हम किसी भी आकार में फिर से आकार दे सकते हैं?
हाँ, जब तक पुनः आकार देने के लिए आवश्यक तत्व दोनों आकृतियों में समान हैं।
हम 8 तत्वों 1D सरणी को 2 पंक्तियों 2D सरणी में 4 तत्वों में फिर से आकार दे सकते हैं लेकिन हम इसे 3 तत्वों 3 पंक्तियों 2D सरणी में दोबारा नहीं बदल सकते क्योंकि इसके लिए 3x3 = 9 तत्वों की आवश्यकता होगी।
उदाहरण
प्रत्येक आयाम में 3 तत्वों के साथ 8 तत्वों के साथ 1D सरणी को 2D सरणी में परिवर्तित करने का प्रयास करें (एक त्रुटि उत्पन्न करेगा):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)
कॉपी लौटाता है या देखता है?
उदाहरण
जांचें कि लौटाई गई सरणी एक प्रति या दृश्य है या नहीं:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)
उपरोक्त उदाहरण मूल सरणी देता है, इसलिए यह एक दृश्य है।
अज्ञात आयाम
आपको एक "अज्ञात" आयाम रखने की अनुमति है।
इसका मतलब है कि आपको रीशेप विधि में आयामों में से किसी एक के लिए सटीक संख्या निर्दिष्ट करने की आवश्यकता नहीं है।
मान के रूप में पास -1
करें, और NumPy आपके लिए इस संख्या की गणना करेगा।
उदाहरण
8 तत्वों के साथ 1D सरणी को 2x2 तत्वों के साथ 3D सरणी में बदलें:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)
नोट: हम -1
एक से अधिक आयामों में नहीं जा सकते हैं।
सरणियों को समतल करना
समतल सरणी का अर्थ है एक बहुआयामी सरणी को 1D सरणी में परिवर्तित करना।
हम ऐसा करने के लिए उपयोग कर सकते हैं reshape(-1)
।
उदाहरण
सरणी को 1D सरणी में बदलें:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr
= arr.reshape(-1)
print(newarr)
नोट:flatten
numpy में सरणियों के आकार को बदलने के लिए , और तत्वों को ravel
पुनर्व्यवस्थित करने के लिए भी बहुत सारे कार्य हैं , आदि । ये इंटरमीडिएट से एडवांस्ड सेक्शन के numpy के अंतर्गत आते हैं।rot90
flip
fliplr
flipud