Bird
Raised Fist0
NumPydata~20 mins

Scalar and array broadcasting 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 scalar and array addition
What is the output of this code snippet using NumPy broadcasting?
NumPy
import numpy as np
arr = np.array([1, 2, 3])
result = arr + 5
print(result)
A[1 2 3 5]
B[6 7 8]
C[5 7 9]
DTypeError
Attempts:
2 left
💡 Hint
Adding a scalar to an array adds the scalar to each element.
❓ data_output
intermediate
2:00remaining
Shape after broadcasting with different dimensions
Given the arrays below, what is the shape of the result after broadcasting and addition?
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.shape)
A(2, 3)
B(3, 2)
C(2,)
D(3,)
Attempts:
2 left
💡 Hint
Broadcasting matches dimensions from the right.
🔧 Debug
advanced
2:00remaining
Identify the error in broadcasting
What error does this code raise when trying to add these arrays?
NumPy
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([[1, 2], [3, 4]])
result = arr1 + arr2
ATypeError: unsupported operand type(s) for +: 'int' and 'list'
BNo error, outputs a (2,3) array
CValueError: operands could not be broadcast together with shapes (3,) (2,2)
DIndexError: index out of bounds
Attempts:
2 left
💡 Hint
Broadcasting requires compatible shapes from the right.
🚀 Application
advanced
2:00remaining
Using broadcasting to normalize data
You have a 2D array of data where each column needs to be normalized by subtracting the column mean. Which code correctly uses broadcasting to do this?
NumPy
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Normalize columns by subtracting mean
Adata - data.mean(axis=0, keepdims=True)
Bdata - data.mean(axis=0)
Cdata - data.mean(axis=1)
Ddata - data.mean()
Attempts:
2 left
💡 Hint
Keep the mean shape compatible for broadcasting.
🧠 Conceptual
expert
2:00remaining
Broadcasting rules and shape compatibility
Which of these pairs of shapes can be broadcast together in NumPy without error?
A(4, 1, 3) and (3, 1)
B(5, 4) and (1, 4, 5)
C(2, 3, 4) and (3, 1)
D(3, 1, 5) and (1, 5)
Attempts:
2 left
💡 Hint
Broadcasting compares shapes from the right and dimensions must be equal or 1.

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

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

    Broadcasting repeats the scalar value to match the shape of the array, adding it element-wise.
  3. Final Answer:

    The scalar is added to each element of the array. -> Option A
  4. 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

  1. Step 1: Recall NumPy scalar addition syntax

    Adding a scalar to an array is done simply by using the plus operator: arr + scalar.
  2. 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.
  3. Final Answer:

    arr + 5 -> Option B
  4. 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

  1. Step 1: Understand scalar multiplication with array

    Multiplying an array by a scalar multiplies each element by that scalar.
  2. Step 2: Calculate element-wise multiplication

    Each element in [1, 2, 3] is multiplied by 3, resulting in [3, 6, 9].
  3. Final Answer:

    [3 6 9] -> Option D
  4. 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

  1. Step 1: Check shapes of arrays

    arr shape is (3,), scalar shape is (1,). Broadcasting allows (1,) to expand to (3,).
  2. Step 2: Apply broadcasting addition

    Each element of arr is added to 5, resulting in [6, 7, 8].
  3. Final Answer:

    No error; output is [6 7 8] -> Option C
  4. 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

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

    [[11 22 33] [14 25 36]] -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard