We use np.sum() to add up numbers in arrays quickly. The axis parameter helps us choose how to add: across rows, columns, or the whole array.
Adding all sales numbers in a table to get total sales.
Summing scores of each student across subjects to get total marks.
Calculating total pixels brightness in each row or column of an image.
Finding total expenses per category from a budget spreadsheet.
Syntax
NumPy
np.sum(array, axis=None)
array is the data you want to add up.
axis=None sums all elements into one number.
axis=0 sums down columns (vertical).
axis=1 sums across rows (horizontal).
Examples
Adds every number in the array to get one total.
NumPy
np.sum(arr)
# sums all elements in arr
Adds numbers down each column, returns sums per column.
NumPy
np.sum(arr, axis=0)
# sums each column
Adds numbers across each row, returns sums per row.
NumPy
np.sum(arr, axis=1)
# sums each row
Sample Program
This code creates a 3x3 array. It sums all numbers, then sums each column, and then sums each row. It prints all results clearly.
NumPy
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Sum all elements
total_sum = np.sum(arr)
# Sum down columns (axis=0)
sum_columns = np.sum(arr, axis=0)
# Sum across rows (axis=1)
sum_rows = np.sum(arr, axis=1)
print(f"Total sum: {total_sum}")
print(f"Sum of each column: {sum_columns}")
print(f"Sum of each row: {sum_rows}")
OutputSuccess
Important Notes
If you forget axis, it adds everything into one number.
For 2D arrays, axis=0 means down columns, axis=1 means across rows.
For higher dimensions, axis chooses which dimension to sum over.
Summary
np.sum() adds numbers in arrays.
The axis parameter controls the direction of addition.
Use axis=0 for columns, axis=1 for rows, or None for all elements.
Practice
(1/5)
1. What does the axis parameter in np.sum() control?
easy
A. The data type of the output array.
B. The direction along which the sum is calculated (rows or columns).
C. The size of the array to sum.
D. The number of times the sum is repeated.
Solution
Step 1: Understand the role of axis in np.sum()
The axis parameter tells numpy whether to sum across rows (axis=1) or columns (axis=0).
Step 2: Clarify what axis does not affect
It does not change data type, size, or repetition of sums.
Final Answer:
The direction along which the sum is calculated (rows or columns). -> Option B
Quick Check:
axis controls sum direction [OK]
Hint: Axis decides row or column sum direction [OK]
Common Mistakes:
Thinking axis changes data type
Confusing axis with array size
Assuming axis repeats sums
2. Which of the following is the correct syntax to sum all elements of a 2D numpy array arr?
easy
A. np.sum(arr)
B. np.sum(arr, axis=1, 0)
C. np.sum(arr, axis=2)
D. np.sum(arr, axis='all')
Solution
Step 1: Recall default behavior of np.sum()
Without axis, np.sum(arr) sums all elements in the array.
Step 2: Check invalid axis values
axis=2 is invalid for 2D arrays, axis=1,0 is incorrect syntax, axis='all' is invalid.
Final Answer:
np.sum(arr) -> Option A
Quick Check:
Default np.sum sums all elements [OK]
Hint: No axis sums all elements [OK]
Common Mistakes:
Using invalid axis values
Passing multiple axis values incorrectly
Using string instead of integer for 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. [5 7 9]
B. [3 7]
C. [6 15]
D. [1 2 3 4 5 6]
Solution
Step 1: Understand axis=0 sums columns
Summing along axis=0 adds elements vertically: (1+4), (2+5), (3+6).
Step 2: Calculate sums for each column
1+4=5, 2+5=7, 3+6=9, so result is [5 7 9].
Final Answer:
[5 7 9] -> Option A
Quick Check:
Sum columns = [5 7 9] [OK]
Hint: axis=0 sums columns vertically [OK]
Common Mistakes:
Confusing axis=0 with axis=1
Adding rows instead of columns
Expecting a scalar output
4. What is wrong with this code snippet?
import numpy as np
arr = np.array([[1, 2], [3, 4]])
result = np.sum(arr, axis=2)
medium
A. The array is not defined correctly.
B. np.sum() cannot be used on 2D arrays.
C. The axis value 2 is invalid for a 2D array.
D. The import statement is missing.
Solution
Step 1: Check array dimensions
The array has shape (2, 2), so valid axis values are 0 or 1.
Step 2: Validate axis parameter
axis=2 is out of bounds for this 2D array, causing an error.
Final Answer:
The axis value 2 is invalid for a 2D array. -> Option C
Quick Check:
Axis must be less than array dimensions [OK]
Hint: Axis must be less than array dimensions [OK]
Common Mistakes:
Using axis larger than array dimensions
Thinking np.sum can't handle 2D arrays
Ignoring error messages
5. You have a 3D numpy array arr = np.array([[[1,2],[3,4]], [[5,6],[7,8]]]). What is the shape of the result when you run np.sum(arr, axis=1)?
hard
A. (1, 2)
B. (3, 2)
C. (2, 4)
D. (2, 2)
Solution
Step 1: Understand the shape of arr
arr has shape (2, 2, 2): 2 blocks, each with 2 rows and 2 columns.
Step 2: Summing along axis=1
axis=1 sums over the second dimension (rows), reducing it from 2 to 1, so shape changes from (2, 2, 2) to (2, 2).
Final Answer:
(2, 2) -> Option D
Quick Check:
Sum axis=1 reduces dimension 2 to 1 [OK]
Hint: Sum along axis removes that dimension [OK]
Common Mistakes:
Confusing which axis is summed
Expecting shape to stay same
Mixing up dimensions in 3D arrays
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.