Bird
Raised Fist0
NumPydata~10 mins

Aggregation along specific axes in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Aggregation along specific axes
Start with 2D array
↓
Choose aggregation function
↓
Select axis: 0 (columns) or 1 (rows)
↓
Apply aggregation along axis
↓
Get reduced array with aggregated values
↓
Use or display result
We start with a 2D array, pick an aggregation like sum or mean, choose axis 0 or 1, then apply aggregation along that axis to get a smaller array.
Execution Sample
NumPy
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
sum_axis0 = arr.sum(axis=0)
sum_axis1 = arr.sum(axis=1)
print(sum_axis0, sum_axis1)
This code sums the 2D array along columns (axis 0) and rows (axis 1) and prints both results.
Execution Table
StepArray StateAxis ChosenAggregation FunctionResultExplanation
1[[1, 2, 3], [4, 5, 6]]NoneNoneOriginal arrayStart with 2D array
2[[1, 2, 3], [4, 5, 6]]0sum[5, 7, 9]Sum along columns: 1+4=5, 2+5=7, 3+6=9
3[[1, 2, 3], [4, 5, 6]]1sum[6, 15]Sum along rows: 1+2+3=6, 4+5+6=15
4[[1, 2, 3], [4, 5, 6]]0mean[2.5, 3.5, 4.5]Mean along columns: (1+4)/2=2.5, etc.
5[[1, 2, 3], [4, 5, 6]]1mean[2.0, 5.0]Mean along rows: (1+2+3)/3=2.0, etc.
6N/AN/AN/AExecution endsAll aggregations done
💡 All aggregation operations completed on the array.
Variable Tracker
VariableStartAfter sum axis=0After sum axis=1After mean axis=0After 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_axis0N/A[5 7 9][5 7 9][5 7 9][5 7 9]
sum_axis1N/AN/A[6 15][6 15][6 15]
mean_axis0N/AN/AN/A[2.5 3.5 4.5][2.5 3.5 4.5]
mean_axis1N/AN/AN/AN/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

  1. Step 1: Understand axis parameter meaning

    In NumPy, axis=0 means aggregation happens down the rows, combining values in each column.
  2. Step 2: Apply to 2D array

    Aggregating with axis=0 summarizes each column separately.
  3. Final Answer:

    Aggregates values down each column (per column) -> Option A
  4. Quick Check:

    axis=0 means down rows = per column aggregation [OK]
Hint: axis=0 aggregates columns, axis=1 aggregates rows [OK]
Common Mistakes:
  • Confusing axis=0 with axis=1
  • 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

  1. Step 1: Identify axis for row-wise sum

    Summing across columns (per row) requires axis=1.
  2. Step 2: Check syntax correctness

    np.sum(arr, axis=1) correctly sums each row's elements.
  3. Final Answer:

    np.sum(arr, axis=1) -> Option A
  4. 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

  1. Step 1: Understand axis=0 sum

    Sum down rows means add elements in each column: (1+4), (2+5), (3+6).
  2. Step 2: Calculate sums

    Calculations: 1+4=5, 2+5=7, 3+6=9, so result is [5 7 9].
  3. Final Answer:

    [5 7 9] -> Option B
  4. 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

  1. Step 1: Check array dimensions

    The array arr is 2D with shape (2,2), so valid axes are 0 and 1.
  2. Step 2: Validate axis parameter

    Using axis=2 is invalid and causes an error because axis 2 does not exist.
  3. Final Answer:

    axis=2 is invalid for 2D array -> Option D
  4. 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

  1. 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).
  2. Step 2: Apply sum along axis=0

    Using np.sum(data, axis=0) sums all 4 slices element-wise, producing a 2D array.
  3. Final Answer:

    np.sum(data, axis=0) -> Option C
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard