Flask接口签名sign原理与实例代码浅析
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~