对于python中nan的比较

在Python中,对NaN值进行比较时不能使用常规的算术运算符,因为这是IEEE754标准下的行为。即使两个NaN值相同,如a=np.float64(nan),b=np.float64(nan),a==b也会返回False。正确的检测方法是使用np.isnan()函数,如np.isnan(b)会返回True。示例代码中展示了如何检查和处理浮点数中的NaN值。
摘要由CSDN通过智能技术生成

对于python中nan的比较,今天记录一个小的点:

在python中如果出现nan的数值类型,我们在进行比较或者detect的时候,不可以进行算数运算符级别的比较,因为这个是ieee 754标准定义的浮点数nan,属于numpy 的float64类型,所以我们如果直接比较,即使是两个相同的nan定义,a=np.float64(‘nan’), b=np.float64(‘nan’),那么a==b的结果也一定是false,这里我们应该采用特殊定义的isnan(函数进行比较,可以得出true的结果)

from scipy.stats import zscore
import numpy as np

a = zscore([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
b = a.mean()
print(b)

if b == np.float64(‘nan’):
print(“yes”)

t = np.float64(‘nan’)
if np.isnan(b):
print(“yes”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Daniel_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值