numpy np.nan和np.NaN之间的差异

mw3dktmi  于 2022-12-13  发布在  其他
关注(0)|答案(3)|浏览(262)

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,为什么 Dataframe 中的值填充为NaN
我得到的NaN不是一个数字,所以它可能会这样处理它,因此改变了 Dataframe 中的条目,但我仍然不确定。

yvt65v4c

yvt65v4c1#

所以基本上NaNNANnan是nan的等价定义
或者换句话说
NaNNANnan的别名

np.nan
np.NaN
np.NAN

如果检查它们是否相等,则返回False
如果您检查所有这3个的类型,则会发现所有类型都是相同的type(float)
但是让了

a=np.NaN
b=np.NAN
c=np.nan

现在,如果您要检查a、B和c是否相等,则返回True
即使在文件中(第4行)也说:

无法使用相等来测试NaN

您可以从这里查看文档:-
https://numpy.org/doc/stable/user/misc.html?highlight=numpy%20nan

xxhby3vn

xxhby3vn2#

实际上即使你测试:np.nan == np.nan您将得到false

3ks5zfa0

3ks5zfa03#

  • 当您尝试:np.nan is np.NAN is np.NaN,您将获得true
  • 我查过 numpy 官方医生,上面说:
  • 非数字(NaN)的IEEE 754浮点表示。NaN和NAN是nan的等效定义。请使用nan而不是NaN
  • 非数字(NaN)的IEEE 754浮点表示形式。NaN和NAN是nan的等效定义。请使用nan代替NAN

相关问题