Python中nan和'nan'之间的区别

mua*_*aiz 1 python numpy nan

我有两个清单

a = ['E300' 'E407' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' 'nan' ]
b = [ nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan]
Run Code Online (Sandbox Code Playgroud)

我想从列表中删除nan.所以我在列表'a'和'b'上使用了这个

a = [x for x in a if x != 'nan']
b = [x for x in b if x != 'nan']
Run Code Online (Sandbox Code Playgroud)

所以它适用于列表'a',因为我认为它将'nan'作为字符串而不是列表b.如何从列表b中删除那些nan.提前致谢.

Bar*_*mar 10

如果不将它放在引号中,nan则为数字(它是用于表示不存在的结果的特殊数字,称为"非数字").它非常特别,甚至不等于自己.使用math.isnannumpy.isnan测试数字是否为nan

b = [x for x in b if not math.isnan(x)]
Run Code Online (Sandbox Code Playgroud)