np.nan == np.nan问题(np.nan is an invalid document)

网友投稿 264 2022-08-29


np.nan == np.nan问题(np.nan is an invalid document)

np.nan == np.nan问题

今天在学习动手学数据分析的课程的时候,细心的队友发现了一个问题。

对于数值型数据,pandas使用浮点值NAN(Not a Number)来表示缺失值,我们称NaN为容易检测到的标识值

但是在运行以下代码时候,会发现:

np.nan == np.nan

返回的却是:

False

有点百思不得其解。然后继续查阅官方代码仓库的issue,定位到:

涉及的链接还有:

得知:

np.nan和任何数做不等于比较都返回True

np.nan != np.nan np.nan != 0 np.nan != None np.nan != 0.0

True True True True

原因是这个底层代码使用了有序比较或者无序比较:

使用有序比较时:

For _CMP_NEQ_OQ (Ordered comparisons returns false for NaN operands):

nan != nan --> false nan != 0 --> false

使用无序比较时:

For _CMP_NEQ_UQ (Unordered comparison returns true for NaN operands):

nan != nan --> true nan != 0 --> true

总之,别用np.nan做任何比较,大于,小于,等于都不行。

判断是否是NaN,可以参考使用:

np.isnan(np.nan)

np.isnanAPI文档:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot整合liquibase及liquibase生成初始化脚本的方式
下一篇:baidu spider IP 查询(百度地图)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~