This code sums the 2D array along columns (axis 0) and rows (axis 1) and prints both results.
Execution Table
Step
Array State
Axis Chosen
Aggregation Function
Result
Explanation
1
[[1, 2, 3], [4, 5, 6]]
None
None
Original array
Start with 2D array
2
[[1, 2, 3], [4, 5, 6]]
0
sum
[5, 7, 9]
Sum along columns: 1+4=5, 2+5=7, 3+6=9
3
[[1, 2, 3], [4, 5, 6]]
1
sum
[6, 15]
Sum along rows: 1+2+3=6, 4+5+6=15
4
[[1, 2, 3], [4, 5, 6]]
0
mean
[2.5, 3.5, 4.5]
Mean along columns: (1+4)/2=2.5, etc.
5
[[1, 2, 3], [4, 5, 6]]
1
mean
[2.0, 5.0]
Mean along rows: (1+2+3)/3=2.0, etc.
6
N/A
N/A
N/A
Execution ends
All aggregations done
💡 All aggregation operations completed on the array.
Variable Tracker
Variable
Start
After sum axis=0
After sum axis=1
After mean axis=0
After mean axis=1
arr
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
sum_axis0
N/A
[5 7 9]
[5 7 9]
[5 7 9]
[5 7 9]
sum_axis1
N/A
N/A
[6 15]
[6 15]
[6 15]
mean_axis0
N/A
N/A
N/A
[2.5 3.5 4.5]
[2.5 3.5 4.5]
mean_axis1
N/A
N/A
N/A
N/A
[2.0 5.0]
Key Moments - 3 Insights
Why does sum with axis=0 reduce the number of rows but keep the number of columns?
Because axis=0 means summing down each column, so each column's values are added together, resulting in one value per column. This reduces rows to 1 but keeps columns the same, as shown in execution_table row 2.
What happens if we use axis=1 for aggregation?
Axis=1 means summing or aggregating across each row, so each row's values are combined into one number per row. This reduces columns to 1 but keeps rows the same, as shown in execution_table row 3.
Why does the shape of the result change after aggregation?
Aggregation along an axis collapses that axis by combining values, so the dimension along that axis becomes 1 (or disappears), reducing the array's shape. For example, sum along axis=0 changes shape (2,3) to (3,), as in rows 2 and 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table row 2. What is the sum of the second column after summing along axis=0?
A15
B7
C5
D3
💡 Hint
Check the 'Result' column in row 2 for sum_axis0 values.
At which step does the aggregation sum along rows (axis=1) happen?
AStep 3
BStep 2
CStep 4
DStep 5
💡 Hint
Look for 'axis=1' and 'sum' in the execution_table rows.
If we change the aggregation function from sum to mean along axis=0, what is the first value of the result?
A5
B6
C2.5
D1
💡 Hint
Check execution_table row 4 for mean along axis=0 results.
Concept Snapshot
Aggregation along axes in numpy:
- axis=0 aggregates down columns (reduces rows)
- axis=1 aggregates across rows (reduces columns)
- Common functions: sum(), mean(), max(), min()
- Result shape changes by collapsing chosen axis
- Use arr.sum(axis=0) or arr.mean(axis=1) etc.
Full Transcript
This visual execution shows how numpy aggregates data along specific axes in a 2D array. Starting with a 2x3 array, we apply sum and mean functions along axis 0 (columns) and axis 1 (rows). Summing along axis 0 adds values down each column, resulting in a 1D array with length equal to the number of columns. Summing along axis 1 adds values across each row, resulting in a 1D array with length equal to the number of rows. Mean works similarly but calculates averages. The variable tracker shows how each variable changes after each aggregation. Key moments clarify why axis choice affects the shape and result. The quiz tests understanding of these steps by referencing the execution table. This helps beginners see exactly how aggregation along axes works in numpy.
Practice
(1/5)
1. What does setting axis=0 do when aggregating a 2D NumPy array?
easy
A. Aggregates values down each column (per column)
B. Aggregates values across each row (per row)
C. Flattens the array before aggregation
D. Aggregates only the diagonal elements
Solution
Step 1: Understand axis parameter meaning
In NumPy, axis=0 means aggregation happens down the rows, combining values in each column.
Step 2: Apply to 2D array
Aggregating with axis=0 summarizes each column separately.
Final Answer:
Aggregates values down each column (per column) -> Option A
Quick Check:
axis=0 means down rows = per column aggregation [OK]
Thinking axis=0 aggregates rows instead of columns
Assuming axis=0 flattens the array
2. Which of the following is the correct syntax to sum a 2D NumPy array arr along rows (per row)?
easy
A. np.sum(arr, axis=1)
B. np.sum(arr, axis=0)
C. arr.sum(axis=2)
D. np.sum(arr)
Solution
Step 1: Identify axis for row-wise sum
Summing across columns (per row) requires axis=1.
Step 2: Check syntax correctness
np.sum(arr, axis=1) correctly sums each row's elements.
Final Answer:
np.sum(arr, axis=1) -> Option A
Quick Check:
Sum per row uses axis=1 [OK]
Hint: Use axis=1 to sum across columns (per row) [OK]
Common Mistakes:
Using axis=0 to sum rows
Using invalid axis like 2 for 2D array
Forgetting to specify axis
3. Given the array:
arr = np.array([[1, 2, 3], [4, 5, 6]])
What is the output of np.sum(arr, axis=0)?
medium
A. [3 7 11]
B. [5 7 9]
C. [6 15]
D. [1 2 3 4 5 6]
Solution
Step 1: Understand axis=0 sum
Sum down rows means add elements in each column: (1+4), (2+5), (3+6).
Step 2: Calculate sums
Calculations: 1+4=5, 2+5=7, 3+6=9, so result is [5 7 9].
Final Answer:
[5 7 9] -> Option B
Quick Check:
Sum axis=0 adds columns down rows [OK]
Hint: Sum axis=0 adds columns down rows [OK]
Common Mistakes:
Adding rows instead of columns
Confusing axis=0 with axis=1
Returning flattened array instead of summed
4. What is wrong with this code snippet?
arr = np.array([[1, 2], [3, 4]])
result = np.mean(arr, axis=2)
medium
A. No error, code runs fine
B. np.mean cannot be used on arrays
C. Missing parentheses in np.array
D. axis=2 is invalid for 2D array
Solution
Step 1: Check array dimensions
The array arr is 2D with shape (2,2), so valid axes are 0 and 1.
Step 2: Validate axis parameter
Using axis=2 is invalid and causes an error because axis 2 does not exist.
Final Answer:
axis=2 is invalid for 2D array -> Option D
Quick Check:
Axis must be less than array dimensions [OK]
Hint: Axis must be less than array dimensions [OK]
Common Mistakes:
Using axis number too large for array
Thinking np.mean can't be used on arrays
Ignoring error messages
5. You have a 3D NumPy array data with shape (4, 3, 2). You want to compute the sum of each 2D slice along the first axis (axis=0), resulting in a 2D array. Which code correctly does this?
hard
A. np.sum(data)
B. np.sum(data, axis=1)
C. np.sum(data, axis=0)
D. np.sum(data, axis=2)
Solution
Step 1: Understand array shape and axis
Array shape is (4,3,2). Summing along axis=0 collapses the first dimension (4), resulting in shape (3,2).
Step 2: Apply sum along axis=0
Using np.sum(data, axis=0) sums all 4 slices element-wise, producing a 2D array.
Final Answer:
np.sum(data, axis=0) -> Option C
Quick Check:
Sum axis=0 collapses first dimension to 2D [OK]
Hint: Sum axis=0 collapses first dimension in 3D arrays [OK]
Common Mistakes:
Using wrong axis and getting wrong shape
Summing all elements without axis
Confusing axis numbering in 3D arrays
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.