0
0
NumPydata~20 mins

Why advanced broadcasting matters in NumPy - Challenge Your Understanding

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Broadcasting Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of broadcasting with different shapes
What is the output of this code snippet 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]]
BRaises ValueError due to shape mismatch
C
[[10 20 30]
 [10 20 30]]
D
[[11 12 13]
 [14 15 16]]
Attempts:
2 left
💡 Hint
Remember how NumPy adds arrays with compatible shapes by broadcasting smaller arrays.
data_output
intermediate
2:00remaining
Result shape after broadcasting
Given these arrays, what is the shape of the result after broadcasting and addition?
NumPy
import numpy as np

arr1 = np.ones((4,1,3))
arr2 = np.ones((1,5,1))
result = arr1 + arr2
print(result.shape)
ARaises ValueError due to incompatible shapes
B(4, 1, 5)
C(1, 5, 3)
D(4, 5, 3)
Attempts:
2 left
💡 Hint
Broadcasting aligns dimensions from the right and expands dimensions of size 1.
🔧 Debug
advanced
2:00remaining
Identify the error in broadcasting
What error does this code raise and why?
NumPy
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([[1, 2], [3, 4]])
result = arr1 + arr2
print(result)
AValueError: operands could not be broadcast together with shapes (3,) (2,2)
BTypeError: unsupported operand type(s) for +: 'int' and 'list'
COutput: [[2 4 6] [4 6 7]]
DOutput: [[2 4] [4 6]]
Attempts:
2 left
💡 Hint
Check if the shapes of the arrays can be broadcasted according to NumPy rules.
🚀 Application
advanced
2:00remaining
Using broadcasting to normalize data
You have a 2D NumPy array representing data samples (rows) and features (columns). How can you subtract the mean of each feature from the data using broadcasting?
NumPy
import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
mean = np.mean(data, axis=0)
normalized = ???
print(normalized)
Adata - mean
Bdata - mean.reshape(1, -1)
Cdata - mean.reshape(-1, 1)
Ddata - mean.T
Attempts:
2 left
💡 Hint
The mean shape is (number_of_features,), you need to align it with data shape (samples, features).
🧠 Conceptual
expert
2:00remaining
Why advanced broadcasting improves performance
Why does using advanced broadcasting in NumPy often lead to faster code compared to explicit loops?
ABroadcasting automatically parallelizes code across multiple CPU cores.
BBroadcasting creates copies of arrays which speeds up memory access.
CBroadcasting uses optimized C code internally and avoids explicit Python loops, reducing overhead.
DBroadcasting converts arrays to lists for faster iteration.
Attempts:
2 left
💡 Hint
Think about how NumPy handles operations internally compared to Python loops.