📖 Scenario: Imagine you work in a bakery that tracks daily sales of different types of bread. The sales data is collected as a single list of numbers, but you want to organize it into a table showing sales per day and bread type.
🎯 Goal: You will create a numpy array from a list of sales numbers, then reshape it into a 2D array with rows as days and columns as bread types. Finally, you will print the reshaped array to see the organized sales data.
📋 What You'll Learn
Use numpy to create and reshape arrays
Create a 1D numpy array with exact sales data
Define a new shape as a tuple
Use numpy.reshape() to change the array dimensions
Print the reshaped array
💡 Why This Matters
🌍 Real World
Reshaping arrays is useful when you want to organize flat data into tables or grids, like sales data per day and product.
💼 Career
Data scientists often reshape data to prepare it for analysis or visualization, making this skill important for cleaning and structuring data.
Progress0 / 4 steps
1
Create the sales data array
Import numpy as np and create a 1D numpy array called sales with these exact values: 10, 15, 20, 25, 30, 35.
NumPy
Hint
Use np.array() to create the array from the list of numbers.
2
Define the new shape for the array
Create a variable called new_shape and set it to the tuple (2, 3) to represent 2 days and 3 bread types.
NumPy
Hint
A tuple is written with parentheses and commas, like (2, 3).
3
Reshape the sales array
Use np.reshape() with the sales array and new_shape to create a new array called reshaped_sales.
NumPy
Hint
Call np.reshape() with the array first, then the shape tuple.
4
Print the reshaped sales array
Print the variable reshaped_sales to display the sales data organized by days and bread types.
NumPy
Hint
Use print(reshaped_sales) to show the array.
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
Step 1: Understand the purpose of reshape()
The reshape() function changes the shape (dimensions) of an existing array but keeps the data intact.
Step 2: Compare with other options
Options A, B, and C describe different functions or actions unrelated to reshaping.
Final Answer:
Changes the shape of an array without changing its data -> Option B
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
Step 1: Recall correct reshape syntax
The correct syntax is array.reshape(dim1, dim2, ...) with dimensions as separate arguments or a tuple.
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.
Final Answer:
arr.reshape(2, 3) -> Option C
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?
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
Step 1: Check original array size
np.arange(10) creates an array with 10 elements.
Step 2: Check reshape dimensions
Trying to reshape into (3, 4) means 12 elements needed, but only 10 exist.
Step 3: Identify error type
This mismatch causes a ValueError about incompatible shape.
Final Answer:
ValueError: cannot reshape array of size 10 into shape (3,4) -> Option A
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
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.
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.
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.
Final Answer:
arr.reshape(-1, 3, 4) -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.