对于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”)