Bird
Raised Fist0
NumPydata~10 mins

np.cumsum() for cumulative sum in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - np.cumsum() for cumulative sum
Start with array
↓
Initialize sum = 0
↓
Take next element
↓
Add element to sum
↓
Store sum in output array
↓
More elements?
Yes→Take next element
No↓
Return cumulative sum array
np.cumsum() takes an array and adds elements one by one, storing the running total at each step, returning an array of these sums.
Execution Sample
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
cum_sum = np.cumsum(arr)
print(cum_sum)
This code calculates the cumulative sum of the array [1, 2, 3, 4].
Execution Table
StepCurrent ElementRunning Sum BeforeRunning Sum AfterOutput Array So Far
1101[1]
2213[1, 3]
3336[1, 3, 6]
44610[1, 3, 6, 10]
💡 All elements processed; cumulative sum array complete.
Variable Tracker
VariableStartAfter 1After 2After 3After 4Final
running_sum01361010
output_array[][1][1, 3][1, 3, 6][1, 3, 6, 10][1, 3, 6, 10]
Key Moments - 3 Insights
Why does the first element of the output equal the first element of the input?
Because the running sum starts at zero, adding the first element gives the first cumulative sum, as shown in step 1 of the execution_table.
Does np.cumsum() change the original array?
No, np.cumsum() creates a new array with cumulative sums, leaving the original array unchanged, as seen by the separate output_array in variable_tracker.
What happens if the input array is empty?
The output will also be an empty array because there are no elements to sum, so the loop in the concept_flow never runs.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the running sum after processing the third element?
A3
B6
C10
D1
💡 Hint
Check the 'Running Sum After' column at step 3 in the execution_table.
At which step does the output array first contain [1, 3]?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Output Array So Far' column in the execution_table.
If the input array was [2, 2, 2], what would be the final cumulative sum?
A[2, 4, 6]
B[2, 2, 2]
C[1, 3, 6]
D[0, 2, 4]
💡 Hint
Cumulative sum adds each element to the sum of all previous elements, as shown in variable_tracker.
Concept Snapshot
np.cumsum(array) returns a new array with cumulative sums.
Starts from zero, adds each element in order.
Output length equals input length.
Original array stays unchanged.
Useful for running totals or progressive sums.
Full Transcript
np.cumsum() calculates the cumulative sum of an array by adding each element to the sum of all previous elements. Starting from zero, it processes each element one by one, updating the running sum and storing it in a new output array. The original array remains unchanged. For example, given [1, 2, 3, 4], the cumulative sums are [1, 3, 6, 10]. This process is useful when you want to track totals that build up over time or steps.

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