Broadcasting is a way numpy allows operations between arrays of different shapes by automatically expanding the smaller array to match the shape of the larger one without copying data.
Click to reveal answer
beginner
How does numpy handle operations between a scalar and an array?
Numpy treats the scalar as if it were an array of the same shape as the other array, with all elements equal to the scalar, allowing element-wise operations.
Click to reveal answer
beginner
Example: What is the result of np.array([1, 2, 3]) + 5?
The result is np.array([6, 7, 8]) because the scalar 5 is broadcast to each element of the array and added element-wise.
Click to reveal answer
intermediate
What are the rules numpy uses to decide if broadcasting is possible?
Numpy compares shapes from right to left. Dimensions must be equal or one of them must be 1. If these conditions hold for all dimensions, broadcasting works.
Click to reveal answer
beginner
Why is broadcasting useful in data science?
Broadcasting lets you write simple code to perform operations on arrays of different sizes efficiently, saving memory and making calculations faster.
Click to reveal answer
What happens when you add a scalar to a numpy array?
AThe scalar is added to each element of the array
BAn error occurs because shapes differ
CThe scalar replaces the array elements
DOnly the first element of the array is added to the scalar
✗ Incorrect
Numpy broadcasts the scalar to match the array shape and adds it element-wise.
Which of these shape pairs can be broadcast together? (3,1) and (1,4)
AYes, because dimensions are compatible
BNo, because shapes differ
COnly if both are 1D arrays
DOnly if one shape is (3,4)
✗ Incorrect
Dimensions are compatible if they are equal or one is 1, so (3,1) and (1,4) broadcast to (3,4).
What does broadcasting NOT do?
AAutomatically expand arrays without copying data
BMake element-wise operations possible
CAllow operations on arrays of different shapes
DChange the original array's shape permanently
✗ Incorrect
Broadcasting does not change the original array's shape permanently; it is a temporary view for operations.
If you have an array shape (5,) and a scalar, what will be the shape of the result after addition?
A(5,5)
B(1,)
C(5,)
D()
✗ Incorrect
The scalar is broadcast to shape (5,), so the result keeps the array shape.
Which of these can you use to check the shape of an array?
Anp.length()
Barr.shape
Cnp.size()
Dnp.dim()
✗ Incorrect
arr.shape returns the shape (dimensions) of a numpy array.
Explain in your own words how numpy uses broadcasting when adding a scalar to an array.
Think about how a single number can be added to many numbers in a list.
You got /4 concepts.
Describe the rules numpy follows to decide if two arrays can be broadcast together.
Focus on how numpy checks each dimension starting from the end.
You got /4 concepts.
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.