(一)定义和区别
在 Python 中,
nan
和 None
是两个不同的概念,具有不同的含义和用法。nan
表示“非数值”(Not a Number),属于浮点数类型的一种特殊值。它表示一个数不是有效数值,比如除以 0 或者开方负数,都会得到nan
的结果。可以使用math.nan
或numpy.nan
常量来表示nan
。
None
表示空值或者不存在,类似于其他编程语言中的 null、nil 等概念。可以将其看做一个特殊的对象。在 Python 中,函数如果没有返回值,就会默认返回None
;对于变量初始化时未赋值的情况,也会默认为None
。可以使用is
运算符来判断一个变量是否为None
。
区别:
nan
表示一个无效的数值,通常用于表示某种计算的错误结果;而None
表示不存在,通常用于表示变量的空值。
nan
属于浮点数类型,而None
属于对象类型。
- 重要:
nan
不能与任何值相等,包括自己,使用==
比较它们永远返回False
;而None
只能与自己相等,使用==
比较时,只有相等才返回True
。
(二)处理方法
1,None的处理
如果要将列表或其他类似数据结构中的所有
None
值都转化为 0,可以使用列表解析式和条件表达式实现。例如:2,nan的处理
1)使用
numpy
的函数nan_to_num
2)使用
numpy
的函数isnan
注意这个方法需要在
np.array()
里面使用。3)利用
np.nan != np.nan
这个性质介绍太多方法也没有意义哈,不管黑猫白马,能抓老鼠就是好猫~