1. nan(NAN,Nan):not a number表示不是一个数字
什么时候numpy中会出现nan:
当我们读取的本地文件格式为float时,如果有缺失,就会出现nan;
当做了一个不合适的计算的时候(比如无穷大(inf)减去无穷大)
2:inf(-inf,inf):infinity,inf表示正无穷,-inf表示负无穷
什么时候回出现inf包括(-inf,+inf)
比如一个数字除以0,(python中直接会报错,numpy中是一个inf或者-inf)
3. np.nan 和np.nan 不相等
np.nan!=np.nan
4. 统计t3中nan的个数的两种方式
t3 = np.array([1,2,3,4,np.nan,4,np.nan,5])
np.count_nonzero(t3!=t3) #利用的原理就是 np.nan 和np.nan 不相等
np.count_nonzero(np.isnan(t3)) #利用的原理就是false是零值
统计t3中不等于0的个数:--->np.count_nonzero(t3)
5.把t3中nan的值替换为0
t3[np.isnan(t3)]=0
6. nan和任何数值计算结果都为nan
import numpy as np
s1 = np.array([2,3,4,np.nan])
print(np.mean(s1))
以上代码运算结果为nan
np.nanmax用来在除掉np.nan后,在剩余的数据里求最大值,
import numpy as np
s1 = np.array([3,4,1,2,np.nan])
s1_max = np.nanmax(s1)
print(s1_max)
以上代码运行结果为4,如果直接用np.max(s1),则运行结果为nan。
一般的方式是把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行。