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
、NAN
和 nan
是 nan 的等效定义
或者换句话说
NaN
和 NAN
是 nan
的别名
np.nan
np.NaN
np.NAN
如果您检查它们的相等性,它将返回
False
如果你检查这3个类型,你会发现它们都是相同的
type(float)
但是让
a=np.NaN
b=np.NAN
c=np.nan
现在如果你检查 a、b 和 c 是否相等,它会返回
True
(现在不起作用)
即使在文档(第 4 行)中也提到:-
不能使用相等来测试 NaNs
您可以从这里查看文档:-
https://numpy.org/doc/stable/user/misc.html?highlight=numpy%20nan
实际上即使你测试:
np.nan == np.nan
你会得到
false