Bird
Raised Fist0
NumPydata~5 mins

np.cumsum() for cumulative sum in NumPy

Choose your learning style10 modes available
Introduction

We use np.cumsum() to find the running total of numbers in a list or array. It helps us see how values add up step by step.

Tracking total sales over days to see how revenue grows.
Calculating total distance traveled after each segment in a trip.
Finding cumulative scores in a game to check progress.
Summing daily calories consumed to monitor diet.
Adding up rainfall amounts over time to study weather patterns.
Syntax
NumPy
numpy.cumsum(a, axis=None, dtype=None, out=None)

# a: input array
# axis: axis along which to sum (default sums flattened array)
# dtype: data type of output
# out: optional output array to store result

The function returns an array of the same shape as input with cumulative sums.

If axis is not given, it sums over the flattened array.

Examples
Simple 1D array cumulative sum: adds values step by step.
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
cum_sum = np.cumsum(arr)
print(cum_sum)
Cumulative sum along rows (axis 0) in 2D array.
NumPy
arr2d = np.array([[1, 2], [3, 4]])
cum_sum_axis0 = np.cumsum(arr2d, axis=0)
print(cum_sum_axis0)
Cumulative sum along columns (axis 1) in 2D array.
NumPy
cum_sum_axis1 = np.cumsum(arr2d, axis=1)
print(cum_sum_axis1)
Sample Program

This program shows daily sales and their running total using np.cumsum().

NumPy
import numpy as np

# Example: daily sales
sales = np.array([100, 150, 200, 250])

# Calculate cumulative sales
cumulative_sales = np.cumsum(sales)

print("Daily sales:", sales)
print("Cumulative sales:", cumulative_sales)
OutputSuccess
Important Notes

Use axis carefully to get cumulative sums along the right direction in multi-dimensional arrays.

The output array has the same shape as the input array.

Summary

np.cumsum() calculates running totals step by step.

Works on 1D and multi-dimensional arrays.

Useful for tracking totals over time or sequence.

Practice

(1/5)
1. What does the np.cumsum() function do when applied to a 1D numpy array?
easy
A. Calculates the cumulative sum of the elements step by step
B. Calculates the product of all elements
C. Sorts the array in ascending order
D. Finds the maximum value in the array

Solution

  1. Step 1: Understand the function purpose

    np.cumsum() adds elements cumulatively, meaning each element is the sum of all previous elements plus itself.
  2. Step 2: Compare with other options

    Options B, C, and D describe different operations: product, sorting, and max value, which are not what np.cumsum() does.
  3. Final Answer:

    Calculates the cumulative sum of the elements step by step -> Option A
  4. Quick Check:

    np.cumsum() = cumulative sum [OK]
Hint: Remember: cumsum means running total sum [OK]
Common Mistakes:
  • Confusing cumulative sum with product
  • Thinking it sorts the array
  • Assuming it finds max or min values
2. Which of the following is the correct syntax to compute the cumulative sum of a numpy array arr?
easy
A. np.cumsum(arr)
B. All of the above
C. np.cumsum(arr, axis=0)
D. arr.cumsum()

Solution

  1. Step 1: Check numpy function usage

    np.cumsum(arr) is the basic syntax to get cumulative sum of all elements in the array.
  2. Step 2: Check array method and axis parameter

    arr.cumsum() is a valid method call on numpy arrays. Also, np.cumsum(arr, axis=0) computes cumulative sum along the first axis, valid for multi-dimensional arrays.
  3. Final Answer:

    np.cumsum(arr) -> Option A
  4. Quick Check:

    Basic syntax is np.cumsum(arr) [OK]
Hint: np and array method both work; axis optional [OK]
Common Mistakes:
  • Thinking only np.cumsum(arr) works
  • Ignoring axis parameter for multi-dimensional arrays
  • Assuming cumsum is not an array method
3. What is the output of the following code?
import numpy as np
arr = np.array([2, 4, 6, 8])
cum_sum = np.cumsum(arr)
print(cum_sum)
medium
A. [2 8 14 22]
B. [2 4 6 8]
C. [2 6 12 20]
D. [20 18 14 8]

Solution

  1. Step 1: Calculate cumulative sums stepwise

    Start with 2, then 2+4=6, then 6+6=12, then 12+8=20.
  2. Step 2: Form the cumulative sum array

    The resulting array is [2, 6, 12, 20].
  3. Final Answer:

    [2 6 12 20] -> Option C
  4. Quick Check:

    Running total sums = [2, 6, 12, 20] [OK]
Hint: Add each element to sum of all before it [OK]
Common Mistakes:
  • Confusing cumulative sum with original array
  • Adding elements incorrectly
  • Reversing the order of sums
4. The following code throws an error. What is the problem?
import numpy as np
arr = np.array([[1, 2], [3, 4]])
cum_sum = np.cumsum(arr, axis=2)
print(cum_sum)
medium
A. Syntax error in np.cumsum call
B. np.cumsum does not accept axis parameter
C. Array must be 1D for cumsum
D. Axis 2 does not exist for a 2D array

Solution

  1. Step 1: Check array dimensions

    The array has shape (2, 2), so it has axes 0 and 1 only.
  2. Step 2: Validate axis parameter

    Using axis=2 is invalid because axis 2 does not exist for this 2D array, causing an error.
  3. Final Answer:

    Axis 2 does not exist for a 2D array -> Option D
  4. Quick Check:

    Axis must be within array dimensions [OK]
Hint: Axis must be less than array dimensions [OK]
Common Mistakes:
  • Assuming axis parameter is optional but invalid
  • Thinking cumsum only works on 1D arrays
  • Confusing syntax error with axis error
5. Given a 2D numpy array representing daily sales for 3 products over 4 days:
sales = np.array([[5, 3, 2],
                  [4, 6, 1],
                  [7, 2, 3],
                  [3, 5, 4]])

Which code correctly computes the cumulative sales per product over the days?
hard
A. np.cumsum(sales)
B. np.cumsum(sales, axis=0)
C. np.cumsum(sales, axis=1)
D. np.cumsum(sales, axis=2)

Solution

  1. Step 1: Understand the array shape and axis meaning

    The array shape is (4, 3): 4 days (rows), 3 products (columns). Axis 0 moves down rows (days), axis 1 moves across products.
  2. Step 2: Choose axis for cumulative sum per product over days

    To get cumulative sales per product over days, sum down each column (axis=0).
  3. Final Answer:

    np.cumsum(sales, axis=0) -> Option B
  4. Quick Check:

    Cumulative sum down rows = axis 0 [OK]
Hint: Sum down rows (axis=0) for cumulative per product [OK]
Common Mistakes:
  • Using axis=1 sums across products, not over days
  • Ignoring axis parameter
  • Using invalid axis=2 for 2D array
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