scipy.stats.nanmean(array, axis=0) function calculates the arithmetic mean by ignoring the Nan (not a number) values of the array elements along the specified axis of the array.
It's formula -
Parameters : array : Input array or object having the elements, including Nan values, to calculate the arithmetic mean. axis : Axis along which the mean is to be computed. By default axis = 0. Returns : Arithmetic mean of the array elements (ignoring the Nan values) based on the set parameters.Code #1:
# Arithmetic Mean
import scipy
import numpy as np
arr1 = [1, 3, np.nan, 27]
print("Arithmetic Mean using nanmean :", scipy.nanmean(arr1))
print("Arithmetic Mean without handling nan value :", scipy.mean(arr1))
Arithmetic Mean using nanmean : 10.333333333333334 Arithmetic Mean without handling nan value : nanCode #2: With multi-dimensional data
# Arithmetic Mean
from scipy import mean
from scipy import nanmean
import numpy as np
arr1 = [[1, 3, 27],
[3, np.nan, 6],
[np.nan, 6, 3],
[3, 6, np.nan]]
print("Arithmetic Mean is :", mean(arr1))
print("Arithmetic Mean handling nan :", nanmean(arr1))
# using axis = 0
print("\nArithmetic Mean is with default axis = 0 : \n",
mean(arr1, axis = 0))
print("\nArithmetic Mean handling nan with default axis = 0 : \n",
nanmean(arr1, axis = 0))
# using axis = 1
print("\nArithmetic Mean is with default axis = 1 : \n",
mean(arr1, axis = 1))
print("\nArithmetic Mean handling nan with default axis = 1 : \n",
nanmean(arr1, axis = 1))
Output :
Arithmetic Mean is : nan Arithmetic Mean handling nan : 6.444444444444445 Arithmetic Mean is with default axis =0 : [nan nan nan] Arithmetic Mean handling nan with default axis =0 : [ 2.33333333 5. 12. ] Arithmetic Mean is with default axis =1 : [10.33333333 nan nan nan] Arithmetic Mean handling nan with default axis =1 : [10.33333333 4.5 4.5 4.5 ]