NumPy cumsum()

The cumsum() function is used to calculate the cumulative sum of array elements along a specified axis or across all axes.

Example

import numpy as np

# create a NumPy array
array1 = np.array([1, 2, 3, 4, 5])

# calculate the cumulative sum of the array elements cumulative_sum = np.cumsum(array1)
print(cumulative_sum) # Output : [ 1 3 6 10 15]

cumsum() Syntax

The syntax of cumsum() is:

numpy.cumsum(array, axis=None, dtype=None, out=None)

cumsum() Arguments

The cumsum() function takes following arguments:

  • array - the input array
  • axis (optional) - the axis along which the cumulative sum is calculated
  • dtype (optional) - the data type of the returned cumulative sum
  • out (optional) - the output array where the result will be stored

cumsum() Return Value

The cumsum() function returns an array containing the cumulative sum of elements along the specified axis or across all axes.


Example 1: cumsum() With 2-D Array

The axis argument defines how we can find the sum of elements in a 2-D array.

  • If axis = None, the array is flattened and the cumulative sum of the flattened array is returned.
  • If axis = 0, the cumulative sum is calculated column-wise.
  • If axis = 1, the cumulative sum is calculated row-wise.

Let's see an example.

import numpy as np

# create a 2-D array
array1 = np.array([[1, 2, 3],
                                [4, 5, 6],
                                [7, 8, 9]])

# calculate cumulative sum of elements of the flattened array result1 = np.cumsum(array1)
print('Cumulative Sum of flattened array: ', result1)
# calculate the cumulative sum along the rows (axis=1) cumulative_sum_rows = np.cumsum(array1, axis=1)
# calculate the cumulative sum along the columns (axis=0) cumulative_sum_cols = np.cumsum(array1, axis=0)
print("\nCumulative sum along rows:") print(cumulative_sum_rows) print("\nCumulative sum along columns:") print(cumulative_sum_cols)

Output

Cumulative Sum of flattened array:  [ 1  3  6 10 15 21 28 36 45]

Cumulative sum along rows:
[[ 1  3  6]
 [ 4  9 15]
 [ 7 15 24]]

Cumulative sum along columns:
[[ 1  2  3]
 [ 5  7  9]
 [12 15 18]]

Example 2: Use of dtype Argument in cumsum()

import numpy as np

# create an array
array1 = np.array([1, 2, 3, 4, 5])

# calculate the cumulative sum of array1 with the specified data type as float cumulative_sum_float = np.cumsum(array1, dtype=float)
print(cumulative_sum_float)

Output

[ 1.  3.  6. 10. 15.]

Here, the dtype argument is used to specify the data type of the resulting cumulative sum.

In our case, we set the data type as float using dtype=float. This means that the resulting cumulative sum will have elements of type float.


Example 3: Use of out Argument in cumsum()

import numpy as np

# create an array
array1 = np.array([1, 2, 3, 4, 5])

# create an empty array with the same shape as array1
out_array = np.zeros_like(array1)

# calculate the cumulative sum of array1 and store the result in out_array np.cumsum(array1, out=out_array)
print(out_array)

Output

[ 1  3  6 10 15]
[ 1.  3.  6. 10. 15.]

Here, after specifying out=out_array, the result of cumulative sum of array1 is stored in the out_array array.