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

use*_*493 6 pandas

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

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

    0
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
Run Code Online (Sandbox Code Playgroud)

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

我知道该pd.isnull函数可以为这些 np.NaN 正确返回 true。但是我不明白为什么数据类型是float?

Cez*_*ulc 3

数值数组中的 NaN

>>> a = float('inf')
>>> b = float('-inf')
>>> c = float('nan')
>>> a
inf
>>> b
-inf
>>> c
nan
Run Code Online (Sandbox Code Playgroud)

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

>>> c = float('nan')
>>> c + 23
nan
>>> c / 2
nan
>>> c * 2
nan
>>> math.sqrt(c)
nan
>>>
Run Code Online (Sandbox Code Playgroud)

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