Bird
Raised Fist0
NumPydata~20 mins

reshape() for changing dimensions in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Reshape Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of reshaping a 1D array to 2D
What is the output of this code?
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped = arr.reshape(2, 3)
print(reshaped)
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped = arr.reshape(2, 3)
print(reshaped)
A
[[1 2 3]
 [4 5 6]]
B
[[1 2]
 [3 4]
 [5 6]]
C
[[1 2 3 4]
 [5 6 0 0]]
D[1 2 3 4 5 6]
Attempts:
2 left
💡 Hint
Remember reshape changes the shape but keeps all elements in order.
❓ data_output
intermediate
2:00remaining
Shape after reshaping with -1
Given this code, what is the shape of the reshaped array?
import numpy as np
arr = np.arange(12)
reshaped = arr.reshape(3, -1)
print(reshaped.shape)
NumPy
import numpy as np
arr = np.arange(12)
reshaped = arr.reshape(3, -1)
print(reshaped.shape)
A(3, 4)
B(4, 3)
C(6, 2)
D(2, 6)
Attempts:
2 left
💡 Hint
The -1 lets numpy calculate the missing dimension automatically.
🔧 Debug
advanced
2:00remaining
Error when reshaping incompatible size
What error does this code raise?
import numpy as np
arr = np.arange(10)
reshaped = arr.reshape(3, 4)
NumPy
import numpy as np
arr = np.arange(10)
reshaped = arr.reshape(3, 4)
ANo error, outputs a 3x4 array
BValueError: cannot reshape array of size 10 into shape (3,4)
CIndexError: index out of bounds
DTypeError: reshape() takes exactly 1 argument
Attempts:
2 left
💡 Hint
Check if total elements match new shape size.
🚀 Application
advanced
2:00remaining
Reshape for image data
You have a flat array of 3072 elements representing a 32x32 RGB image (3 color channels). Which reshape call correctly converts it to (32, 32, 3)?
Aarr.reshape(32, 3, 32)
Barr.reshape(3, 32, 32)
Carr.reshape(32, 32, 3)
Darr.reshape(3072, 1)
Attempts:
2 left
💡 Hint
Think about height, width, and color channels order.
🧠 Conceptual
expert
2:00remaining
Effect of reshape on data order
When reshaping a numpy array, which statement is true about the order of elements in memory?
AReshape randomly shuffles elements to fill the new shape.
BReshape changes the order of elements in memory to fit the new shape.
CReshape reverses the order of elements when changing dimensions.
DReshape keeps the order of elements the same; only the shape changes.
Attempts:
2 left
💡 Hint
Think about whether reshape rearranges data or just views it differently.

Practice

(1/5)
1. What does the reshape() function do in NumPy?
easy
A. Creates a new array with random values
B. Changes the shape of an array without changing its data
C. Sorts the elements of an array
D. Deletes elements from an array

Solution

  1. Step 1: Understand the purpose of reshape()

    The reshape() function changes the shape (dimensions) of an existing array but keeps the data intact.
  2. Step 2: Compare with other options

    Options A, B, and C describe different functions or actions unrelated to reshaping.
  3. Final Answer:

    Changes the shape of an array without changing its data -> Option B
  4. Quick Check:

    reshape() = change shape only [OK]
Hint: reshape() changes shape, data stays same [OK]
Common Mistakes:
  • Thinking reshape() changes data values
  • Confusing reshape() with sorting or deleting
  • Assuming reshape() creates new random arrays
2. Which of the following is the correct syntax to reshape a NumPy array arr into 2 rows and 3 columns?
easy
A. arr.reshape(2[3])
B. arr.reshape{2, 3}
C. arr.reshape(2, 3)
D. reshape(arr, 2, 3)

Solution

  1. Step 1: Recall correct reshape syntax

    The correct syntax is array.reshape(dim1, dim2, ...) with dimensions as separate arguments or a tuple.
  2. Step 2: Evaluate options

    arr.reshape(2, 3) uses correct method call with separate arguments. arr.reshape(2[3]) has invalid syntax (missing comma). arr.reshape{2, 3} uses curly braces which is wrong syntax. reshape(arr, 2, 3) uses a function call without object which is invalid.
  3. Final Answer:

    arr.reshape(2, 3) -> Option C
  4. Quick Check:

    Use dot and parentheses with dims [OK]
Hint: Use dot and parentheses with dims, no brackets [OK]
Common Mistakes:
  • Forgetting comma between dimensions
  • Using curly braces instead of parentheses
  • Calling reshape as a standalone function
3. What is the output shape of the following code?
import numpy as np
arr = np.arange(12)
new_arr = arr.reshape(3, 4)
print(new_arr.shape)
medium
A. (3, 4)
B. (4, 3)
C. (12,)
D. (2, 6)

Solution

  1. Step 1: Understand the original array

    np.arange(12) creates a 1D array with 12 elements from 0 to 11.
  2. Step 2: Reshape to (3, 4)

    The reshape changes the array to 3 rows and 4 columns, so the shape becomes (3, 4).
  3. Final Answer:

    (3, 4) -> Option A
  4. Quick Check:

    reshape(3,4) = (3,4) shape [OK]
Hint: reshape dims become shape tuple [OK]
Common Mistakes:
  • Confusing rows and columns order
  • Thinking reshape changes total elements
  • Expecting original 1D shape after reshape
4. What error will occur when running this code?
import numpy as np
arr = np.arange(10)
new_arr = arr.reshape(3, 4)
medium
A. ValueError: cannot reshape array of size 10 into shape (3,4)
B. TypeError: reshape() takes exactly 1 argument
C. SyntaxError: invalid syntax
D. No error, reshaping works fine

Solution

  1. Step 1: Check original array size

    np.arange(10) creates an array with 10 elements.
  2. Step 2: Check reshape dimensions

    Trying to reshape into (3, 4) means 12 elements needed, but only 10 exist.
  3. Step 3: Identify error type

    This mismatch causes a ValueError about incompatible shape.
  4. Final Answer:

    ValueError: cannot reshape array of size 10 into shape (3,4) -> Option A
  5. Quick Check:

    Elements must match for reshape [OK]
Hint: Total elements must match for reshape [OK]
Common Mistakes:
  • Ignoring total element count mismatch
  • Expecting reshape to auto-fill missing elements
  • Confusing ValueError with SyntaxError
5. Given a 1D NumPy array arr = np.arange(24), which of the following reshapes it into a 3D array with shape (2, 3, 4) using automatic dimension calculation with -1 in the first position?
hard
A. arr.reshape(2, 3, 4)
B. arr.reshape(2, -1, 4)
C. arr.reshape(2, 3, -1)
D. arr.reshape(-1, 3, 4)

Solution

  1. Step 1: Understand total elements and target shape

    The array has 24 elements. The target shape is 3D with dimensions (2, 3, 4), total 24 elements.
  2. Step 2: Use -1 for automatic dimension

    Using -1 lets NumPy calculate that dimension automatically. For (2, 3, 4), if we replace one dimension with -1, NumPy calculates it as 24 divided by product of other dims.
  3. Step 3: Check each option

    arr.reshape(2, 3, 4) is explicit (2,3,4) - works but no automatic calculation.
    arr.reshape(2, -1, 4): (2, -1, 4) means -1 = 24/(2*4) = 3, shape (2,3,4) correct.
    arr.reshape(-1, 3, 4): (-1, 3, 4) means -1 = 24/(3*4) = 2, shape (2,3,4) correct.
    arr.reshape(2, 3, -1): (2, 3, -1) means -1 = 24/(2*3) = 4, shape (2,3,4) correct.
    All B, C, D produce correct shape, but question asks for reshaping into (2,3,4) using automatic dimension calculation. Only arr.reshape(-1, 3, 4) uses -1 as first dimension, matching question wording.
  4. Final Answer:

    arr.reshape(-1, 3, 4) -> Option D
  5. Quick Check:

    -1 auto calculates dimension [OK]
Hint: Use -1 for one dimension to auto calculate [OK]
Common Mistakes:
  • Using multiple -1 values in reshape
  • Not matching total elements with new shape
  • Confusing which dimension -1 replaces
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard