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。
一般的方式是把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行。
本文介绍了numpy中nan和inf的概念及其出现情况。nan表示不是一个数字,常在处理文件中缺失的浮点数据时出现;inf表示正无穷或负无穷,如除以零操作。numpy中,nan不等于任何值,包括自身,可以使用np.isnan()检测。统计nan个数可借助np.count_nonzero(t3!=t3)或np.isnan(t3)。此外,介绍如何替换nan为0,以及nan在统计计算中的处理,如np.nanmean()和np.nanmax()。最后,讨论了处理缺失值的策略,如使用均值或中值填充。
1322

被折叠的 条评论
为什么被折叠?



