Aggregations: sum, mean, axis
An aggregation is a NumPy operation that reduces an array of many values into a single summary statistic — sum, mean, minimum, maximum, or standard deviation — all computed at C speed.
Learn Aggregations: sum, mean, axis in our free NumPy course — a beginner-friendly interactive lesson with worked examples, a practice exercise and a quick…
Part of the free Numpy course at LearnCodingFast — hands-on lessons with examples you run in your browser, plus practice exercises and a quick quiz.
In this lesson you'll master the core aggregation methods and the powerful axis argument that lets you summarize a 2D array per-column or per-row, plus argmax, argmin, and cumulative sums.
Every NumPy array carries a set of methods that collapse it to a single number. The most common are sum() , mean() , min() , max() , and std() (standard deviation). Called with no arguments, they work across the entire array.
Expected output: 30 , 6.0 , 2 , 10 , and 2.8284271247461903 for the standard deviation.
With a 2D array you usually want a result per column or per row , not one number for everything. The axis argument controls this. The simplest rule: axis is the dimension that disappears .
Expected output: 21 for the whole grid, [5 7 9] per column (axis=0), and [6 15] per row (axis=1).
The axis argument works the same way for every aggregation. Here we compute the average of each subject (column) and each student (row) from a small grade table.
Expected output: subject averages [83.33 80. 76.67] , student averages [80. 70. 90.] , overall max 100 , and the per-student minimums [70 60 80] .
Sometimes you need the position of an extreme value, not the value itself. np.argmax returns the index of the largest element and np.argmin the index of the smallest. cumsum gives a running total — each element is the sum of everything up to and including it.
Expected output: 3 , 2 , the running total [12 57 64 152 175] , and [1 2] for the per-row argmax.
Replace each ___ so the program reports the total of each column and the average overall.
Expected output: [ 90 120] and 35.0 . (Answers: 0 , mean .)
❌ Got per-row results when you wanted per-column
You passed the wrong axis — they are easy to swap.
✅ Fix: remember axis is the dimension that disappears. Use axis=0 for per-column, axis=1 for per-row.
max returns the value; argmax returns the index.
✅ Fix: use argmax / argmin only when you need the position of the extreme value.
Each row is a store and each column is a month. Find the total revenue per store, then identify which store earned the most.
Lesson 11 complete — you can summarize any array!
You now reach for sum , mean , min , max , and std with confidence, control direction with axis , and locate extremes with argmax and argmin .
🚀 Up next: Stacking & Splitting — combine and divide arrays along any axis.
Practice quiz
What does np.array([2, 4, 6, 8, 10]).sum() return?
- 20
- 30
- 6.0
- 10
Answer: 30. Adding 2+4+6+8+10 gives 30.
For grid = [[1, 2, 3], [4, 5, 6]], what is grid.sum(axis=0)?
axis=0 collapses the rows, giving one column sum each: [5 7 9].
For grid = [[1, 2, 3], [4, 5, 6]], what is grid.sum(axis=1)?
axis=1 collapses the columns, giving one row sum each: 6 and 15.
Which call returns one value per column of a 2D array?
- arr.sum()
- arr.sum(axis=1)
- arr.sum(axis=0)
- arr.cumsum()
Answer: arr.sum(axis=0). axis=0 removes the row dimension, leaving a per-column result.
What does np.argmax(np.array([12, 45, 7, 88, 23])) return?
- 88
- 4
- 3
- 45
Answer: 3. argmax returns the index of the largest value; 88 sits at index 3.
What is the difference between max and argmax?
- They are identical
- max gives the value, argmax gives its index
- max gives the index, argmax gives the value
- argmax only works on 1D arrays
Answer: max gives the value, argmax gives its index. max returns the largest value while argmax returns its position.
What does np.cumsum(np.array([12, 45, 7])) return?
Each element is the running total: 12, 12+45=57, 57+7=64.
What does the mean of [[90,80,70],[60,70,80],[100,90,80]] along axis=1 return?
axis=1 averages across each row (student): 80, 70, and 90.
Called with no axis argument, arr.sum() returns what?
- One total per column
- One total per row
- A 2D array
- A single scalar over the whole array
Answer: A single scalar over the whole array. Without an axis, the aggregation reduces the entire array to one number.
Which method computes the standard deviation of an array?
- arr.std()
- arr.var()
- arr.cumsum()
- arr.argmin()
Answer: arr.std(). std() returns the standard deviation; for [2,4,6,8,10] it is about 2.83.