Table of Contents
ToggleNumPy में **Array का Shape बदलना** (Reshaping) एक शक्तिशाली तकनीक है जिसका उपयोग हम array के आयामों (dimensions) को बदलने के लिए करते हैं। इस प्रक्रिया में, हम array के आकार को बदल सकते हैं, यानी हम नए आयामों को जोड़ सकते हैं, मौजूदा आयामों को हटा सकते हैं, या प्रत्येक आयाम में तत्वों की संख्या बदल सकते हैं।
**1-D Array को 2-D Array में बदलना** बहुत सामान्य है। इसे हम reshape() function का उपयोग करके कर सकते हैं, जहां हम यह निर्दिष्ट करते हैं कि हमें कितने पंक्तियाँ (rows) और स्तंभ (columns) चाहिए।
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-D array को 4 पंक्तियों और 3 स्तंभों वाला 2-D array में रूपांतरित किया।
arr.reshape(4, 3) का परिणाम एक 2-D array होगा जिसमें 4 पंक्तियाँ और 3 स्तंभ होंगे।
**1-D Array को 3-D Array में बदलना** भी किया जा सकता है। यहां हम यह निर्दिष्ट कर सकते हैं कि हमें कितने 2-D arrays चाहिए, और प्रत्येक में कितने तत्व होने चाहिए।
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)
इस उदाहरण में, हम 12 तत्वों वाले 1-D array को एक 3-D array में बदल रहे हैं, जिसमें 2 arrays होंगे, और हर array में 3 पंक्तियाँ और प्रत्येक पंक्ति में 2 तत्व होंगे।
हम array को reshape कर सकते हैं, बशर्ते नए आकार के लिए आवश्यक तत्वों की संख्या पुराने आकार से मेल खाती हो। उदाहरण के लिए, एक 8 तत्वों वाले array को 3×3 आकार में रूपांतरित नहीं किया जा सकता, क्योंकि इसे 9 तत्वों की आवश्यकता होगी।
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)
इस उदाहरण में हम 8 तत्वों वाले array को 3×3 आकार में बदलने की कोशिश कर रहे हैं, जो संभव नहीं है, क्योंकि इसके लिए 9 तत्वों की आवश्यकता होती है।
**Reshape()** method हमेशा एक **view** लौटाता है, न कि copy। इसका मतलब है कि यदि आप reshaped array को बदलते हैं, तो मूल array भी बदलेगा।
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base) # Output: [1 2 3 4 5 6 7 8]
जैसा कि आप देख सकते हैं, जब हम array को reshape करते हैं, तो base attribute से यह पता चलता है कि यह मूल array का ही view है।
आप reshape में एक “unknown” dimension का उपयोग कर सकते हैं, जहां आपको एक आयाम का आकार निर्दिष्ट करने की आवश्यकता नहीं होती। इसके लिए -1 पास करें, और NumPy उस आयाम का आकार स्वचालित रूप से निकाल लेगा।
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)
इस उदाहरण में, हम एक 1-D array को 2x2x2 आकार में बदल रहे हैं। यहां -1 का मतलब है कि NumPy स्वचालित रूप से अंतिम आयाम का आकार तय करेगा।
**Flattening** का मतलब है कि multidimensional array को एक 1-D array में बदलना। इसे reshape(-1) से किया जा सकता है।
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)
इस उदाहरण में, हमने एक 2-D array को 1-D array में बदल दिया है। reshape(-1) के माध्यम से array को फ्लैटन किया गया है।
