Broadcasting is a way NumPy allows arrays of different shapes to work together in arithmetic operations by automatically expanding the smaller array to match the shape of the larger one.
Click to reveal answer
beginner
What are the three main rules of broadcasting in NumPy?
1. If arrays have different numbers of dimensions, prepend 1s to the shape of the smaller array. 2. Arrays are compatible in a dimension if they are equal or one of them is 1. 3. Arrays can be broadcast together if they are compatible in all dimensions.
Click to reveal answer
intermediate
Given arrays with shapes (3, 1) and (1, 4), what will be the shape after broadcasting?
The arrays will broadcast to shape (3, 4). The 1 in each dimension is stretched to match the other array's size.
Click to reveal answer
beginner
Why does broadcasting help in data science computations?
Broadcasting lets you perform operations on arrays of different shapes without writing loops, making code simpler and faster, especially for large datasets.
Click to reveal answer
beginner
What happens if two arrays are not compatible for broadcasting?
NumPy raises a ValueError because it cannot automatically align the arrays for element-wise operations.
Click to reveal answer
Which of these pairs of shapes can be broadcast together? A) (3, 4) and (4) B) (2, 3) and (3, 2) C) (5, 1) and (5, 3) D) (1, 3) and (2, 3, 1)
A(3, 4) and (4)
B(2, 3) and (3, 2)
C(5, 1) and (5, 3)
D(1, 3) and (2, 3, 1)
✗ Incorrect
Options A, C, and D work because their dimensions are compatible (equal or one is 1 after padding leading 1s). A: (4) as (1,4) with (3,4). C: (5,1) with (5,3). D: (1,3) padded to (1,1,3) vs (2,3,1). B incompatible.
What does NumPy do if one array has shape (3, 1) and the other (3, 4)?
ABroadcasts the (3, 1) array to (3, 4)
BRaises an error
CBroadcasts the (3, 4) array to (3, 1)
DNo broadcasting, uses only first array
✗ Incorrect
The (3, 1) array is stretched along the second dimension to match (3, 4).
If two arrays have shapes (2, 3, 4) and (3, 1), what shape will result after broadcasting?
A(3, 3, 4)
B(2, 3, 1)
C(2, 3, 4)
DBroadcasting not possible
✗ Incorrect
The smaller array shape is treated as (1, 3, 1) and broadcasts to (2, 3, 4).
Which condition must be true for two dimensions to be compatible in broadcasting?
AThey must both be even numbers
BThey must both be prime numbers
CThey must be multiples of each other
DThey must be equal or one must be 1
✗ Incorrect
Broadcasting requires dimensions to be equal or one to be 1 to stretch the smaller array.
What is the first step NumPy takes when broadcasting arrays with different numbers of dimensions?
AIt removes extra dimensions
BIt prepends 1s to the smaller array's shape
CIt transposes the arrays
DIt reshapes both arrays to 1D
✗ Incorrect
NumPy adds 1s to the front of the smaller array's shape to align dimensions.
Explain the three main broadcasting rules in NumPy and why they matter.
Think about how shapes align and stretch.
You got /4 concepts.
Describe a real-life example where broadcasting can simplify data calculations.
Imagine you have a list of prices and one tax rate.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of broadcasting in NumPy?
easy
A. To create copies of arrays for backup
B. To perform operations on arrays of different shapes by stretching dimensions
C. To sort arrays automatically before calculations
D. To convert arrays into lists for easier processing
Solution
Step 1: Understand broadcasting concept
Broadcasting allows NumPy to perform element-wise operations on arrays with different shapes by stretching dimensions of size 1.
Step 2: Compare options with concept
Only To perform operations on arrays of different shapes by stretching dimensions correctly describes this purpose. Other options describe unrelated actions.
Final Answer:
To perform operations on arrays of different shapes by stretching dimensions -> Option B
Quick Check:
Broadcasting = Stretching dimensions for operations [OK]
Hint: Broadcasting stretches size 1 dims to match shapes [OK]
Common Mistakes:
Thinking broadcasting copies arrays
Confusing broadcasting with sorting
Believing broadcasting converts arrays to lists
2. Which of the following is a valid broadcasting rule in NumPy?
easy
A. Arrays must have the same number of dimensions
B. All dimensions must be equal
C. Dimensions must be exactly equal or one of them must be 1
D. Only 1D arrays can be broadcasted
Solution
Step 1: Recall broadcasting rules
Broadcasting compares shapes from right to left; dimensions must be equal or one must be 1 to stretch.
Step 2: Evaluate options
Dimensions must be exactly equal or one of them must be 1 matches the rule exactly. Options A, B, and D are incorrect because broadcasting allows different dimensions and works beyond 1D arrays.
Final Answer:
Dimensions must be exactly equal or one of them must be 1 -> Option C
Quick Check:
Broadcasting rule = equal or 1 dimension [OK]
Hint: Check if dims are equal or one is 1 [OK]
Common Mistakes:
Assuming all dims must match exactly
Believing arrays must have same number of dims
Thinking broadcasting only works on 1D arrays
3. What is the shape of the result when adding arrays a = np.ones((3,1)) and b = np.ones((1,4)) using broadcasting?
medium
A. (3, 1)
B. (4, 3)
C. (1, 4)
D. (3, 4)
Solution
Step 1: Analyze shapes of a and b
a has shape (3,1), b has shape (1,4). Broadcasting compares from right: 1 vs 4 and 3 vs 1.
Step 2: Apply broadcasting rules
Dimensions 1 and 4 broadcast to 4; 3 and 1 broadcast to 3. Result shape is (3,4).
Final Answer:
(3, 4) -> Option D
Quick Check:
Broadcast (3,1) + (1,4) = (3,4) [OK]
Hint: Match dims right to left, stretch 1 to other size [OK]
Common Mistakes:
Confusing order of dimensions
Forgetting to broadcast size 1 dimension
Swapping dimensions in result shape
4. Consider the code:
import numpy as np
x = np.ones((2,3))
y = np.ones((3,2))
z = x + y
What error will occur and why?
medium
A. ValueError because shapes (2,3) and (3,2) are incompatible for broadcasting
B. TypeError because arrays have different data types
C. No error, result shape is (2,3)
D. SyntaxError due to invalid addition
Solution
Step 1: Check shapes of x and y
x shape is (2,3), y shape is (3,2). Compare dims right to left: 3 vs 2 and 2 vs 3.
Step 2: Apply broadcasting rules
Neither dimension matches or is 1, so broadcasting fails and raises ValueError.
Final Answer:
ValueError because shapes (2,3) and (3,2) are incompatible for broadcasting -> Option A
Quick Check:
Broadcasting fails if dims differ and neither is 1 [OK]
Hint: Broadcast dims must be equal or 1; else error [OK]
Common Mistakes:
Assuming addition works despite shape mismatch
Confusing error type as TypeError or SyntaxError
Ignoring dimension order in shapes
5. You have a 3D array A with shape (4,1,5) and a 2D array B with shape (1,3). You want to add them using broadcasting. What will be the shape of the result?
hard
A. Broadcasting will fail with ValueError
B. (4, 1, 3)
C. (1, 3, 5)
D. (4, 3, 5)
Solution
Step 1: Align shapes by adding missing dimension
A shape is (4,1,5), B shape is (1,3). Treat B as (1,1,3) to match 3D shape.
Step 2: Compare dimensions right to left
For each dim: 5 vs 3 (A's last dim 5, B's last dim 3) - mismatch. This means broadcasting fails.
Step 3: Re-examine dimension matching
Actually, B's shape is (1,3), so when adding to A (4,1,5), B is broadcast to (1,1,3). Compare dims: 5 vs 3 (A's last dim 5, B's last dim 3) - mismatch. NumPy aligns shapes from right: A (4,1,5), B (1,1,3). Last dims 5 and 3 mismatch, so broadcasting fails.
Final Answer:
Broadcasting will fail with ValueError -> Option A
Quick Check:
Mismatch in last dims 5 and 3 causes failure [OK]
Hint: Align dims right to left; mismatch without 1 causes error [OK]
Common Mistakes:
Assuming missing dims auto-align without prepending
Ignoring last dimension mismatch
Thinking broadcasting always works if dims differ
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.