np.Nan 和 np.nan 之间有任何区别吗?据我所知,两者都用于表示空值,但是如果您看这里
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([[np.nan,2,np.nan,0],[3,4,np.nan,1],[np.nan,np.nan,np.nan,5]],columns=list('ABCD'))
print(df)
print(np.nan == np.NaN)
我获得了以下输出:
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
False
Process finished with exit code 0
如果它们相同,print(np.nan == np.NaN)
应该返回True
,为什么数据框中的值会被填充为NaN
?我知道
NaN
不是一个数字,所以它可能是这样处理的,因此更改了数据框中的条目,但我仍然不确定。
nan
(非数值),因为它总是返回 False,例如np.nan == np.nan
也是False
。但是,使用is
操作符进行身份比较,则可以得到True
的结果,即np.nan is np.NaN
。请参阅 NumPy 文档中的 IEEE 754 浮点特殊值。 - miraduloNaN ≠ NaN
都成立。因此,你几乎可以在任何地方找到这种行为,而不仅仅是在Python中。这一点一直延伸到CPU级别。 - Joooeey