Bird
Raised Fist0
NumPydata~20 mins

Broadcasting rules in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Broadcasting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of broadcasting addition
What is the output of this code using NumPy broadcasting?
NumPy
import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([10, 20, 30])
result = arr1 + arr2
print(result)
A
[[11 22 33]
 [14 25 36]]
B
[[11 12 13]
 [14 15 16]]
C
[[10 20 30]
 [10 20 30]]
D
[[1 2 3 10 20 30]
 [4 5 6 10 20 30]]
Attempts:
2 left
💡 Hint
Remember how NumPy adds arrays with compatible shapes by stretching smaller arrays.
❓ data_output
intermediate
1:30remaining
Shape after broadcasting multiplication
Given these arrays, what is the shape of the result after multiplication?
NumPy
import numpy as np

arr1 = np.ones((4, 1))
arr2 = np.array([1, 2, 3])
result = arr1 * arr2
print(result.shape)
A(4, 3)
B(4, 1)
C(1, 3)
D(3, 4)
Attempts:
2 left
💡 Hint
Broadcasting stretches dimensions of size 1 to match the other array.
🔧 Debug
advanced
2:30remaining
Identify the broadcasting error
Which option shows code that will raise a broadcasting error?
NumPy
import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([1, 2, 3])
result = arr1 + arr2
Aarr1 + arr2.reshape(3, 1)
Barr1 + arr2[:2]
Carr1 + arr2
Darr1 + arr2[:2].reshape(2, 1)
Attempts:
2 left
💡 Hint
Check if the shapes can be broadcast together.
🧠 Conceptual
advanced
1:30remaining
Broadcasting rule for trailing dimensions
Which statement best describes NumPy's broadcasting rule for arrays with different shapes?
AArrays are compatible if each dimension is equal or one of them is 1, starting from the trailing dimensions.
BArrays are compatible if the total number of elements is the same.
CArrays are compatible if their shapes are exactly the same.
DArrays are compatible only if the smaller array has fewer dimensions than the larger one.
Attempts:
2 left
💡 Hint
Think about how NumPy compares shapes from the right side.
🚀 Application
expert
3:00remaining
Using broadcasting to normalize data
You have a 2D NumPy array 'data' of shape (100, 5) representing 100 samples with 5 features each. You want to subtract the mean of each feature from the data using broadcasting. Which code correctly does this?
Adata - data.mean()
Bdata - data.mean(axis=1)
Cdata - data.mean(axis=0).reshape(100, 5)
Ddata - data.mean(axis=0)
Attempts:
2 left
💡 Hint
Mean per feature means mean along samples axis.

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

  1. Step 1: Understand broadcasting concept

    Broadcasting allows NumPy to perform element-wise operations on arrays with different shapes by stretching dimensions of size 1.
  2. 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.
  3. Final Answer:

    To perform operations on arrays of different shapes by stretching dimensions -> Option B
  4. 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

  1. Step 1: Recall broadcasting rules

    Broadcasting compares shapes from right to left; dimensions must be equal or one must be 1 to stretch.
  2. 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.
  3. Final Answer:

    Dimensions must be exactly equal or one of them must be 1 -> Option C
  4. 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

  1. 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.
  2. Step 2: Apply broadcasting rules

    Dimensions 1 and 4 broadcast to 4; 3 and 1 broadcast to 3. Result shape is (3,4).
  3. Final Answer:

    (3, 4) -> Option D
  4. 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

  1. 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.
  2. Step 2: Apply broadcasting rules

    Neither dimension matches or is 1, so broadcasting fails and raises ValueError.
  3. Final Answer:

    ValueError because shapes (2,3) and (3,2) are incompatible for broadcasting -> Option A
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. Final Answer:

    Broadcasting will fail with ValueError -> Option A
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard