为什么"np.NaN"的数据类型属于numpy.float64?



我创建了一个填充了np.nan的columen数据帧,如下所示:

df=pd.DataFrame([np.nan]*5)

0
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN

当我尝试查找df.iloc[0,0]的数据类型,即 NaN 时,该值返回numpy.float64

我知道pd.isnull函数可以正确返回这些 np。南。但是,我不明白为什么数据类型是浮点数?

NaN in numer array

>>> a = float('inf')
>>> b = float('-inf')
>>> c = float('nan')
>>> a
inf
>>> b
-inf
>>> c
nan

NaN 值在所有操作中传播,而不会引发异常。例如:

>>> c = float('nan')
>>> c + 23
nan
>>> c / 2
nan
>>> c * 2
nan
>>> math.sqrt(c)
nan
>>>

如果是浮点型,则在计算过程中可以帮助Python。

NumPy (np) 使用IEEE StandardforBinary Floating-Point进行算术计算(IEEE 754)。这就是为什么当您使用 NumPy 进行任何类型的操作时,它会返回Float

>>> type(np.nan*5)
<class 'float'>

最新更新