11_Numpy含有缺失值ndarray数组的求和,平均值的计算方法
通常情况下,ndarrya数组中会含有一个或多个缺失值(nan),这种情况下使用函数sum()来求和的话,会直接返回nan。这个时候可以使用函数nansum(),可以对缺失值(nan)以外的其他值进行求和。
机器学习时,对于缺失值的处理方法,在以后的文章中再进行介绍。
举例:使用函数np.genfromtxt()读取一个含有缺失值的csv文件。缺失值的部分将直接显示为nan。
import numpy as np
arr = np.genfromtxt('./data/sample_nan.csv', delimiter=',')
print(arr)
# [[ 11. 12. nan 14.]
# [ 21. nan nan 24.]
# [ 31. 32. 33. 34.]]
使用nansum()进行求和
使用函数sun()的话,将直接返回nan。
print(arr.sum())
# nan
print(np.sum(arr))
# nan
使用函数nansum()的话,可以对缺失值(nan)以外的其他值进行求和。
print(np.nansum(arr))
# 212.0
也可以通过参数axis,来指定行或列的计算。
- axis的使用可以参考以下链接:
03_Numpy的数组各行,各列的求和,平均值,最大值,最小值,最大最小值差,标准差,方差等的计算
print(np.nansum(arr, axis=0))
# [ 63. 44. 33. 72.]
print(np.nansum(arr, axis=1))
# [ 37. 45. 130.]
平均值,最大值,最小值等的计算
平均值,最大值,最小值,标准差,方差等的计算,可以使用函数np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd(), np.nanvar()。
print(np.nanmean(arr))
# 23.5555555556
print(np.nanmax(arr))
# 34.0
print(np.nanmin(arr))
# 11.0
print(np.nanstd(arr))
# 8.90831211237
print(np.nanvar(arr))
# 79.3580246914