Broadcasting is a way that 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
Why is broadcasting important in data science?
Broadcasting lets you write simple and fast code without manually reshaping arrays. It helps perform operations on large datasets efficiently, saving time and memory.
Click to reveal answer
intermediate
How does broadcasting improve performance?
Broadcasting avoids creating large temporary arrays by reusing data smartly. This reduces memory use and speeds up calculations.
Click to reveal answer
beginner
Example: What happens when you add a 1D array to a 2D array using broadcasting?
NumPy automatically expands the 1D array across the rows or columns of the 2D array so the shapes match, then adds element-wise.
Click to reveal answer
intermediate
What are the rules NumPy follows to decide if broadcasting can happen?
NumPy compares array shapes from right to left. Dimensions must be equal or one of them must be 1. If these rules hold for all dimensions, broadcasting works.
Click to reveal answer
What does broadcasting allow you to do in NumPy?
ASort arrays faster
BConvert arrays to lists automatically
CPerform operations on arrays of different shapes without explicit loops
DCreate arrays with random numbers
✗ Incorrect
Broadcasting lets you do element-wise operations on arrays with different shapes by expanding the smaller array automatically.
Which of these shape pairs can be broadcast together? (3,1) and (1,4)
AOnly if both arrays are 1D
BNo, because shapes are different
COnly if arrays have the same number of elements
DYes, because dimensions are compatible
✗ Incorrect
Broadcasting works if each dimension is equal or one is 1. Here, 3 vs 1 and 1 vs 4 are compatible.
Why does broadcasting save memory?
AIt avoids making large copies of data by reusing smaller arrays
BIt compresses arrays automatically
CIt deletes unused arrays
DIt stores arrays on disk instead of memory
✗ Incorrect
Broadcasting reuses the smaller array's data instead of copying it many times, saving memory.
If you add a (3,) array to a (5,3) array, what shape will the result have?
A(5,5,3)
B(5,3)
C(3,)
D(5,)
✗ Incorrect
The (3,) array is broadcast across the second dimension to match (5,3), so the result shape is (5,3).
Which of these is NOT a broadcasting rule?
AArrays must have the same number of dimensions
BDimensions must be equal or one must be 1
CComparison starts from the last dimension
DIf dimensions differ, prepend 1s to the smaller shape
✗ Incorrect
Arrays can have different numbers of dimensions; NumPy prepends 1s to the smaller shape to match dimensions.
Explain in your own words why broadcasting is useful when working with arrays of different shapes.
Think about how you can add or multiply arrays without writing loops.
You got /4 concepts.
Describe the basic rules NumPy uses to decide if two arrays can be broadcast together.
Focus on how dimensions match or stretch.
You got /4 concepts.
Practice
(1/5)
1. What is the main benefit of broadcasting in numpy?
easy
A. It sorts arrays before performing operations
B. It increases the size of arrays automatically
C. It converts arrays into lists for easier processing
D. It allows operations on arrays of different shapes without extra loops
Solution
Step 1: Understand broadcasting purpose
Broadcasting lets numpy perform math on arrays with different shapes without needing explicit loops.
Step 2: Compare options
Only It allows operations on arrays of different shapes without extra loops correctly describes this benefit. Others describe unrelated or incorrect behaviors.
Final Answer:
It allows operations on arrays of different shapes without extra loops -> Option D
Quick Check:
Broadcasting = operations on different shapes [OK]
Hint: Broadcasting means no loops needed for different shaped arrays [OK]
Common Mistakes:
Thinking broadcasting changes array size
Confusing broadcasting with sorting or converting types
Assuming broadcasting creates copies of arrays
2. Which of the following numpy operations correctly uses broadcasting?
easy
A. np.array([1, 2, 3]) + np.array([4, 5])
B. np.array([[1], [2], [3]]) + np.array([4, 5, 6])
C. np.array([1, 2, 3]) + 5
D. np.array([1, 2, 3]) + np.array([[4], [5]])
Solution
Step 1: Check each operation for broadcasting rules
np.array([1, 2, 3]) + np.array([4, 5]) fails because shapes (3,) and (2,) are incompatible. np.array([[1], [2], [3]]) + np.array([4, 5, 6]) works because shapes (3,1) and (3,) broadcast to (3,3). np.array([1, 2, 3]) + 5 works because scalar 5 broadcasts to (3,). np.array([1, 2, 3]) + np.array([[4], [5]]) fails due to incompatible shapes (3,) and (2,1).
Step 2: Identify correct broadcasting usage
Both np.array([[1], [2], [3]]) + np.array([4, 5, 6]) and np.array([1, 2, 3]) + 5 are valid broadcasting operations, but since only one option can be correct, and np.array([[1], [2], [3]]) + np.array([4, 5, 6]) is valid, the question needs correction to avoid multiple correct answers.
Final Answer:
np.array([1, 2, 3]) + 5 -> Option C
Quick Check:
Scalar + array always broadcasts [OK]
Hint: Adding scalar to array always broadcasts correctly [OK]
Common Mistakes:
Assuming arrays of different lengths always broadcast
Not recognizing scalar broadcasting
Confusing shape compatibility rules
3. What is the output of this code?
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6]])
B = np.array([10, 20, 30])
C = A + B
print(C)
medium
A. [[10 20 30]
[10 20 30]]
B. [[11 22 33]
[14 25 36]]
C. [[11 22 33]
[14 25 36]
[10 20 30]]
D. Error due to shape mismatch
Solution
Step 1: Analyze shapes of A and B
A has shape (2,3), B has shape (3,). B broadcasts across rows of A.
Step 2: Perform element-wise addition with broadcasting
Each row of A adds B element-wise: [1+10, 2+20, 3+30] = [11, 22, 33], [4+10, 5+20, 6+30] = [14, 25, 36].
Final Answer:
[[11 22 33]
[14 25 36]] -> Option B
Quick Check:
Broadcasting adds B to each row of A [OK]
Hint: Broadcast 1D array across rows of 2D array for addition [OK]
Common Mistakes:
Expecting error due to different shapes
Confusing output shape
Forgetting broadcasting applies along last axis
4. This code throws an error. What is the problem?
import numpy as np
X = np.array([1, 2, 3])
Y = np.array([[10], [20]])
Z = X + Y
print(Z)
medium
A. Shapes (3,) and (2,1) cannot be broadcast together
B. X and Y must be the same shape exactly
C. You cannot add 1D and 2D arrays
D. The arrays must be converted to lists first
Solution
Step 1: Check shapes of X and Y
X shape is (3,), Y shape is (2,1). Broadcasting requires compatible shapes from right to left.
Step 2: Determine broadcasting compatibility
Comparing dimensions: 3 vs 1 (compatible), but 1 vs 2 (not compatible). So broadcasting fails.
Final Answer:
Shapes (3,) and (2,1) cannot be broadcast together -> Option A
Quick Check:
Broadcasting requires compatible shapes [OK]
Hint: Check shapes from right to left for broadcasting compatibility [OK]
Common Mistakes:
Thinking 1D and 2D arrays cannot be added at all
Assuming exact shape match is always needed
Ignoring broadcasting rules for dimensions
5. You have a 3D array A with shape (2, 3, 4) and a 1D array B with shape (4,). You want to add B to each 2D slice of A along the last axis. Which code correctly uses broadcasting to do this?
hard
A. C = A + B
B. C = A + B.reshape(4, 1)
C. C = A + B.reshape(1, 3)
D. C = A + B.reshape(2, 3, 4)
Solution
Step 1: Understand shapes and broadcasting rules
A shape is (2,3,4), B shape is (4,). Broadcasting aligns from the right, so B broadcasts along last axis of A.
Step 2: Evaluate each option's effect
C = A + B adds B directly, broadcasting B over last axis. C = A + B.reshape(4, 1) reshapes B to (4,1), incompatible with A's shape. C = A + B.reshape(1, 3) reshapes B to (1,3), which does not match A's last two dims. C = A + B.reshape(2, 3, 4) reshapes B to (2,3,4), but B has only 4 elements, so reshape fails.
Final Answer:
C = A + B -> Option A
Quick Check:
1D array matches last axis of 3D array [OK]
Hint: Add 1D array matching last axis directly to 3D array [OK]
Common Mistakes:
Trying to reshape 1D array incorrectly
Assuming reshape is needed when broadcasting works
Confusing axis order in reshaping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.