नई आकृति प्रदान करने के लिए संतुष्ट करने की कसौटी यह है कि 'नई आकृति मूल आकृति के अनुकूल होनी चाहिए'
numpy हमें 1 के रूप में नए आकार के पैरामीटर देने की अनुमति देता है (जैसे: (2, -1) या (-1,3) लेकिन नहीं (-1, -1)। इसका सीधा सा मतलब है कि यह एक अनजान आयाम है और हम चाहते हैं कि इसे समझ लिया जाए। और सुन्न 'सरणी की लंबाई और शेष आयामों' को देखकर यह सुनिश्चित करेगा कि यह उपर्युक्त मानदंडों को पूरा करता है
अब उदाहरण देखें।
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
अब (-1) के साथ फेरबदल करने की कोशिश कर रहा है। परिणाम नई आकृति है (12,) और मूल आकार के साथ संगत है (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
अब (-1, 1) के साथ फेरबदल करने की कोशिश कर रहा है। हमने कॉलम को 1 लेकिन पंक्तियों को अज्ञात के रूप में प्रदान किया है। इसलिए हमें परिणाम (12, 1) के रूप में नए आकार मिलते हैं। मूल आकार (3,4) के साथ संगत।
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
उपरोक्त एकल सुविधा के numpy
लिए उपयोग करने के reshape(-1,1)
लिए सलाह / त्रुटि संदेश के अनुरूप है ; यानी सिंगल कॉलम
array.reshape(-1, 1)
यदि आपके डेटा में एकल सुविधा है, तो अपने डेटा का उपयोग करके उसे रीसेट करें
नई आकृति (-1, 2) के रूप में। पंक्ति अज्ञात, कॉलम 2। हमें नए आकार में परिणाम मिलता है (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
अब कॉलम को अज्ञात के रूप में रखने का प्रयास किया जा रहा है। नई आकृति (1, -1) के रूप में। यानी, पंक्ति 1, कॉलम अज्ञात है। हम परिणाम के रूप में नए आकार (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
उपरोक्त एक ही नमूने के numpy
लिए उपयोग करने के reshape(1,-1)
लिए सलाह / त्रुटि संदेश के अनुरूप है ; यानी एकल पंक्ति
array.reshape(1, -1)
यदि यह एकल नमूना है तो अपने डेटा का उपयोग करके उसे फिर से खोलें
नया आकार (2, -1)। पंक्ति 2, कॉलम अज्ञात। हम परिणाम के रूप में नए आकार (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
नई आकृति (3, -1) के रूप में। पंक्ति 3, कॉलम अज्ञात। हम परिणाम के रूप में नए आकार (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
और अंत में, यदि हम दोनों आयामों को अज्ञात यानी नए आकार के रूप में (-1, -1) प्रदान करने का प्रयास करते हैं। यह एक त्रुटि फेंक देगा
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
ताकि तत्वों की समान संख्या को बनाए रखा जा सके।