Bird
Raised Fist0
NumPydata~10 mins

np.sum() and axis parameter in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - np.sum() and axis parameter
Start with array
↓
Choose axis parameter
↓
Sum elements along axis
↓
Return summed array or scalar
↓
End
np.sum() adds numbers in an array. The axis parameter decides which direction to add: rows, columns, or all.
Execution Sample
NumPy
import numpy as np
arr = np.array([[1, 2], [3, 4]])
sum_all = np.sum(arr)
sum_axis0 = np.sum(arr, axis=0)
sum_axis1 = np.sum(arr, axis=1)
This code sums all elements, then sums by columns (axis=0), then by rows (axis=1).
Execution Table
StepOperationInput ArrayAxis ParameterResult
1Sum all elements[[1, 2], [3, 4]]None10
2Sum along axis=0 (columns)[[1, 2], [3, 4]]0[4, 6]
3Sum along axis=1 (rows)[[1, 2], [3, 4]]1[3, 7]
💡 All sums computed; axis parameter controls direction of summation.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3
arr[[1, 2], [3, 4]][[1, 2], [3, 4]][[1, 2], [3, 4]][[1, 2], [3, 4]]
sum_allundefined101010
sum_axis0undefinedundefined[4, 6][4, 6]
sum_axis1undefinedundefinedundefined[3, 7]
Key Moments - 3 Insights
Why does np.sum(arr) return a single number but np.sum(arr, axis=0) returns an array?
np.sum(arr) adds all numbers in the whole array into one number (see step 1). When axis=0, it sums down each column separately, so the result is an array with one sum per column (step 2).
What does axis=1 mean in np.sum(arr, axis=1)?
Axis=1 means sum across each row. So it adds numbers in each row separately, giving one sum per row (step 3).
What happens if axis is set to a value not in the array's dimensions?
Numpy will raise an error because the axis does not exist. The axis must be 0 or 1 for a 2D array like this.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result of np.sum(arr, axis=0)?
A[3, 7]
B[4, 6]
C10
D[1, 2]
💡 Hint
Check row 2 in the execution table under Result.
At which step does np.sum() add all elements into one number?
AStep 2
BStep 3
CStep 1
DNone
💡 Hint
Look at the Operation column for 'Sum all elements'.
If we change axis=1 to axis=0, how does the result change compared to step 3?
AResult sums columns instead of rows
BResult sums rows instead of columns
CResult becomes a single number
DResult stays the same
💡 Hint
Compare results in step 2 and step 3 in the execution table.
Concept Snapshot
np.sum(array, axis=None)
- Sums all elements if axis=None
- axis=0 sums down columns
- axis=1 sums across rows
- Result shape depends on axis
- Useful for quick totals in arrays
Full Transcript
This lesson shows how np.sum() adds numbers in arrays. Without axis, it adds all numbers into one total. With axis=0, it adds numbers down each column separately. With axis=1, it adds numbers across each row separately. The axis parameter controls the direction of summation. We traced a 2x2 array example step-by-step, watching how results change. This helps understand how to get totals by rows, columns, or entire array.

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

  1. 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).
  2. Step 2: Clarify what axis does not affect

    It does not change data type, size, or repetition of sums.
  3. Final Answer:

    The direction along which the sum is calculated (rows or columns). -> Option B
  4. 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

  1. Step 1: Recall default behavior of np.sum()

    Without axis, np.sum(arr) sums all elements in the array.
  2. Step 2: Check invalid axis values

    axis=2 is invalid for 2D arrays, axis=1,0 is incorrect syntax, axis='all' is invalid.
  3. Final Answer:

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

  1. Step 1: Understand axis=0 sums columns

    Summing along axis=0 adds elements vertically: (1+4), (2+5), (3+6).
  2. Step 2: Calculate sums for each column

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

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

  1. Step 1: Check array dimensions

    The array has shape (2, 2), so valid axis values are 0 or 1.
  2. Step 2: Validate axis parameter

    axis=2 is out of bounds for this 2D array, causing an error.
  3. Final Answer:

    The axis value 2 is invalid for a 2D array. -> Option C
  4. 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

  1. Step 1: Understand the shape of arr

    arr has shape (2, 2, 2): 2 blocks, each with 2 rows and 2 columns.
  2. 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).
  3. Final Answer:

    (2, 2) -> Option D
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard