📖 Scenario: Imagine you run a small bakery. You have a list of prices for different types of bread. You want to calculate the total cost if a customer buys multiple quantities of each bread type. Instead of writing a loop, you can use NumPy broadcasting to multiply the prices by the quantities easily.
🎯 Goal: Learn how to use scalar and array broadcasting in NumPy to multiply arrays and scalars efficiently.
📋 What You'll Learn
Create a NumPy array with exact bread prices
Create a scalar quantity to multiply with prices
Use broadcasting to multiply the scalar with the array
Print the resulting array showing total costs
💡 Why This Matters
🌍 Real World
Broadcasting helps quickly calculate costs, measurements, or any repeated operation without writing loops, saving time and reducing errors.
💼 Career
Data scientists and analysts use broadcasting to efficiently manipulate and analyze large datasets with fewer lines of code.
Progress0 / 4 steps
1
Create a NumPy array of bread prices
Import NumPy as np and create a NumPy array called prices with these exact values: 2.5, 3.0, 4.0, 5.5.
NumPy
Hint
Use np.array([...]) to create the array.
2
Create a scalar quantity for number of breads
Create a scalar variable called quantity and set it to the integer 3.
NumPy
Hint
Just assign the number 3 to quantity.
3
Multiply prices by quantity using broadcasting
Create a new variable called total_costs that multiplies the prices array by the scalar quantity using broadcasting.
NumPy
Hint
Use the * operator to multiply the array by the scalar.
4
Print the total costs array
Print the variable total_costs to display the total cost for each bread type.
NumPy
Hint
Use print(total_costs) to show the result.
Practice
(1/5)
1. What happens when you add a scalar to a NumPy array using broadcasting?
easy
A. The scalar is added to each element of the array.
B. The scalar is ignored and the array remains unchanged.
C. An error occurs because shapes do not match.
D. The scalar replaces all elements in the array.
Solution
Step 1: Understand scalar and array addition
A scalar is treated as an array with no dimensions and can be added to each element of the array.
Step 2: Apply broadcasting rules
Broadcasting repeats the scalar value to match the shape of the array, adding it element-wise.
Final Answer:
The scalar is added to each element of the array. -> Option A
Quick Check:
Scalar + array = element-wise addition [OK]
Hint: Scalar acts like a single value added to all elements [OK]
Common Mistakes:
Thinking scalar is ignored
Expecting shape mismatch error
Assuming scalar replaces array
2. Which of the following is the correct syntax to add scalar 5 to a NumPy array arr?
easy
A. arr.add(5)
B. arr + 5
C. add(arr, 5)
D. arr + [5]
Solution
Step 1: Recall NumPy scalar addition syntax
Adding a scalar to an array is done simply by using the plus operator: arr + scalar.
Step 2: Evaluate options
arr + 5 uses arr + 5, which is correct. arr.add(5) is invalid syntax. add(arr, 5) is not a NumPy function. arr + [5] tries to add a list, which changes behavior.
Final Answer:
arr + 5 -> Option B
Quick Check:
Use arr + scalar for scalar addition [OK]
Hint: Use plus operator directly for scalar addition [OK]
Common Mistakes:
Using method .add() which doesn't exist
Passing scalar inside a list
Using non-existent add() function
3. What is the output of the following code?
import numpy as np
arr = np.array([1, 2, 3])
result = arr * 3
print(result)
medium
A. [3 3 3]
B. [1 2 3 3 6 9]
C. Error due to shape mismatch
D. [3 6 9]
Solution
Step 1: Understand scalar multiplication with array
Multiplying an array by a scalar multiplies each element by that scalar.
Step 2: Calculate element-wise multiplication
Each element in [1, 2, 3] is multiplied by 3, resulting in [3, 6, 9].
Final Answer:
[3 6 9] -> Option D
Quick Check:
Array * scalar = element-wise multiplication [OK]
Hint: Multiply each element by scalar directly [OK]
Common Mistakes:
Expecting concatenation instead of multiplication
Thinking output is repeated elements
Assuming error due to shape mismatch
4. Identify the error in this code snippet:
import numpy as np
arr = np.array([1, 2, 3])
scalar = np.array([5])
result = arr + scalar
print(result)
medium
A. Output is [1 2 3 5]
B. Error because scalar is an array, not a number
C. No error; output is [6 7 8]
D. Error due to shape mismatch
Solution
Step 1: Check shapes of arrays
arr shape is (3,), scalar shape is (1,). Broadcasting allows (1,) to expand to (3,).
Step 2: Apply broadcasting addition
Each element of arr is added to 5, resulting in [6, 7, 8].
Final Answer:
No error; output is [6 7 8] -> Option C
Quick Check:
Broadcasting works with (3,) + (1,) arrays [OK]
Hint: Arrays with shape (n,) and (1,) broadcast correctly [OK]
Common Mistakes:
Assuming scalar must be a plain number
Thinking shape mismatch causes error
Expecting concatenation instead of addition
5. Given a 2D array arr = np.array([[1, 2, 3], [4, 5, 6]]), what is the result of arr + np.array([10, 20, 30])?
hard
A. [[11 22 33]
[14 25 36]]
B. [[11 12 13]
[14 15 16]]
C. Error due to shape mismatch
D. [[10 20 30]
[10 20 30]]
Solution
Step 1: Analyze shapes for broadcasting
arr shape is (2,3), and np.array([10, 20, 30]) shape is (3,). The second array broadcasts across rows.
Step 2: Perform element-wise addition row-wise
Each row of arr adds the vector [10, 20, 30] element-wise, resulting in [[11, 22, 33], [14, 25, 36]].
Final Answer:
[[11 22 33]
[14 25 36]] -> Option A
Quick Check:
Broadcast vector added to each row [OK]
Hint: Vector added to each row in 2D array [OK]
Common Mistakes:
Expecting error due to different shapes
Adding vector only to first row
Confusing addition with concatenation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.