Reshaping arrays helps us change the shape of data without changing its content. This is useful to prepare data for analysis or visualization.
Why reshaping arrays matters in NumPy
import numpy as np # Reshape an array reshaped_array = original_array.reshape(new_shape)
The total number of elements must stay the same before and after reshaping.
Use -1 in new_shape to let numpy calculate the correct size automatically for that dimension.
import numpy as np # Original array with 6 elements original_array = np.array([1, 2, 3, 4, 5, 6]) # Reshape to 2 rows and 3 columns reshaped_array = original_array.reshape(2, 3) print(reshaped_array)
import numpy as np # Original array with 6 elements original_array = np.array([1, 2, 3, 4, 5, 6]) # Use -1 to automatically calculate columns reshaped_array = original_array.reshape(3, -1) print(reshaped_array)
import numpy as np # Empty array empty_array = np.array([]) # Reshape empty array to (0, 3) reshaped_empty = empty_array.reshape(0, 3) print(reshaped_empty)
import numpy as np # Single element array single_element_array = np.array([42]) # Reshape to (1, 1) reshaped_single = single_element_array.reshape(1, 1) print(reshaped_single)
This program shows how to reshape a 1D array into different 2D shapes. It prints the original array and its shape, then reshapes it to 3 rows and 4 columns, and finally reshapes it to 2 rows with automatic column calculation.
import numpy as np # Create a 1D array with 12 elements original_array = np.arange(1, 13) print("Original array:") print(original_array) print("Shape:", original_array.shape) # Reshape to 3 rows and 4 columns reshaped_array = original_array.reshape(3, 4) print("\nReshaped array (3x4):") print(reshaped_array) print("Shape:", reshaped_array.shape) # Reshape to 2 rows and let numpy calculate columns reshaped_auto = original_array.reshape(2, -1) print("\nReshaped array (2x?):") print(reshaped_auto) print("Shape:", reshaped_auto.shape)
Reshaping does not change the data, only how it is viewed.
Time complexity is O(1) because no data copying happens, just a new view.
Common mistake: Trying to reshape to a shape with a different total number of elements causes an error.
Use reshaping to prepare data for functions that expect specific input shapes.
Reshaping changes the shape of data without changing its content.
Use -1 to let numpy calculate one dimension automatically.
Always ensure total elements stay the same before and after reshaping.
Practice
Solution
Step 1: Understand reshaping purpose
Reshaping changes how data is organized in rows and columns but keeps all elements intact.Step 2: Compare options
Only It changes the shape without altering the data content. correctly states reshaping changes shape without changing data content.Final Answer:
It changes the shape without altering the data content. -> Option DQuick Check:
Reshape = Change shape, keep data [OK]
- Thinking reshaping deletes or adds elements
- Confusing reshaping with sorting
- Believing reshaping converts data types
arr into 2 rows and 3 columns?Solution
Step 1: Recall numpy reshape syntax
The reshape method takes dimensions as separate arguments, e.g., reshape(2, 3).Step 2: Check options
arr.reshape(2, 3) uses correct syntax with comma-separated integers. arr.reshape(3, 2) would create 3 rows and 2 columns instead. The option using a semicolon (;) is invalid syntax. The option passing a list [2, 3] is incorrect as reshape expects separate arguments.Final Answer:
arr.reshape(2, 3) -> Option CQuick Check:
reshape(rows, cols) = reshape(2, 3) [OK]
- Using semicolons instead of commas
- Passing a list instead of separate arguments
- Swapping row and column order
import numpy as np arr = np.arange(12) reshaped = arr.reshape(3, 4) print(reshaped.shape)
Solution
Step 1: Understand the code
arr is created with 12 elements from 0 to 11. Then reshaped into 3 rows and 4 columns.Step 2: Determine the shape
The reshape(3, 4) changes shape to (3, 4). Printing shape outputs this tuple.Final Answer:
(3, 4) -> Option AQuick Check:
reshape(3,4) shape = (3, 4) [OK]
- Confusing rows and columns order
- Expecting original shape (12,)
- Mixing up shape tuple format
import numpy as np arr = np.arange(10) reshaped = arr.reshape(3, 4)
Solution
Step 1: Check array size and reshape target
arr has 10 elements. Reshape tries to make shape (3,4) which needs 12 elements.Step 2: Identify error type
Since total elements mismatch, numpy raises ValueError about impossible reshape.Final Answer:
ValueError: cannot reshape array of size 10 into shape (3,4) -> Option AQuick Check:
Mismatch size causes ValueError [OK]
- Ignoring total element count mismatch
- Expecting reshape to truncate or pad data
- Confusing ValueError with SyntaxError
arr = np.arange(24), which reshape command correctly reshapes it into a 3D array with shape (2, 3, 4) using automatic dimension calculation?Solution
Step 1: Understand array size and target shape
arr has 24 elements. Target shape is (2, 3, 4) which multiplies to 24.Step 2: Use -1 to let numpy calculate dimension
Using -1 lets numpy infer that dimension. arr.reshape(-1, 3, 4) uses -1 in first dimension, so shape becomes (2,3,4) automatically.Step 3: Check other options
arr.reshape(2, 3, 4) works but does not use automatic calculation. arr.reshape(3, -1, 4) results in (3, 2, 4). arr.reshape(2, 4, -1) results in (2, 4, 3).Final Answer:
arr.reshape(-1, 3, 4) -> Option BQuick Check:
Use -1 for auto dimension: reshape(-1, 3, 4) [OK]
- Placing -1 in wrong dimension causing errors
- Not matching total elements after reshape
- Assuming multiple -1s allowed in reshape
Ready to prove it?
Pass the test and this pattern moves unknown
