Return the cumulative sum of array elements treating NaNs as zero in Python


To return the cumulative sum of array elements over a given axis treating NaNs as zero, use the nancumprod() method. The cumulative sum does not change when NaNs are encountered and leading NaNs are replaced by zeros. Zeros are returned for slices that are all-NaN or empty.

The method returns a new array holding the result unless out is specified, in which it is returned. The result has the same size as a, and the same shape as a if axis is not None or a is a 1-d array. Cumulative works like, 5, 5+10, 5+10+15, 5+10+15+20. The 1st parameter is the input array. The 2nd parameter is the axis along which the cumulative sum is computed. The default (None) is to compute the cumsum over the flattened array.

The 3rd parameter is the type of the returned array and of the accumulator in which the elements are summed. If dtype is not specified, it defaults to the dtype of a, unless a has an integer dtype with a precision less than that of the default platform integer. In that case, the default platform integer is used. The 4th parameter is the alternative output array in which to place the result. It must have the same shape and buffer length as the expected output but the type will be cast if necessary.

Steps

At first, import the required library −

import numpy as np

Creating a numpy array using the array() method. We have added elements of int type with nan −

arr = np.array([10, 20, 30, 40, np.nan])

Display the array −

print("Our Array...\n",arr)

Check the Dimensions −

print("\nDimensions of our Array...\n",arr.ndim)

Get the Datatype −

print("\nDatatype of our Array object...\n",arr.dtype)

To return the cumulative sum of array elements over a given axis treating NaNs as zero, use the nancumprod() method. The cumulative sum does not change when NaNs are encountered and leading NaNs are replaced by zeros. Zeros are returned for slices that are all-NaN or empty −

print("\nCumulative Sum of array elements...\n",np.nancumsum(arr))

Example

import numpy as np

# Creating a numpy array using the array() method
# We have added elements of int type with nan
arr = np.array([10, 20, 30, 40, np.nan])

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# To return the cumulative sum of array elements over a given axis treating NaNs as zero, use the nancumprod() method
# The cumulative sum does not change when NaNs are encountered and leading NaNs are replaced by zeros.

print("\nCumulative Sum of array elements...\n",np.nancumsum(arr))

Output

Our Array...
[10. 20. 30. 40. nan]

Dimensions of our Array...
1

Datatype of our Array object...
float64

Cumulative Sum of array elements...
[ 10. 30. 60. 100. 100.]

Updated on: 28-Feb-2022

190 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements