Concept Flow - Avoiding broadcasting mistakes
Start with arrays
Check shapes compatibility
Broadcast operation
Result array
Broadcasting tries to match array shapes for operations. If shapes don't align, errors or wrong results happen.
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([[1], [2], [3]]) result = arr1 + arr2 print(result)
| Step | arr1 shape | arr2 shape | Broadcast check | Action | Result shape | Result content |
|---|---|---|---|---|---|---|
| 1 | (3,) | (3,1) | Compare last dims: 3 vs 1 | Broadcast arr1 dim 3 to (1,3), arr2 dim 1 to 3 | (3,3) | [[2 3 4] [3 4 5] [4 5 6]] |
| 2 | N/A | N/A | Operation done | Addition element-wise | (3,3) | [[2 3 4] [3 4 5] [4 5 6]] |
| Variable | Start | After Broadcast | Final |
|---|---|---|---|
| arr1 | [1 2 3] | [[1 2 3] [1 2 3] [1 2 3]] | [[1 2 3] [1 2 3] [1 2 3]] |
| arr2 | [[1] [2] [3]] | [[1 1 1] [2 2 2] [3 3 3]] | [[1 1 1] [2 2 2] [3 3 3]] |
| result | N/A | N/A | [[2 3 4] [3 4 5] [4 5 6]] |
Avoiding broadcasting mistakes: - NumPy broadcasts arrays with compatible trailing dimensions. - Dimensions must be equal or one must be 1. - Mismatched shapes cause errors. - Always check shapes before operations. - Use .shape attribute to verify compatibility.
import numpy as np x = np.array([[1, 2, 3], [4, 5, 6]]) y = np.array([10, 20, 30]) result = x + y print(result)
import numpy as np arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([1, 2, 3]) result = arr1 + arr2 print(result)
data with shape (4, 3, 2) representing 4 samples, 3 features, and 2 measurements each. You want to add a 1D array offset of shape (2,) to each measurement across all samples and features without errors. Which code correctly avoids broadcasting mistakes?Pass the test and this pattern moves unknown