python出现nan的情况分析
nan代表Not A Number(不是一个数),它并不等于0。
情况一:
0 * float('inf') 结果为:nan
float('inf') / float('inf') 结果为:nan
float('inf') - float('inf') 结果为:nan
float('-inf') - float('-inf') 结果也为:nan
注解:python中的正无穷或负无穷,使用float("inf")或float("-inf")来表示。
因为nan不是一个数,所以相关计算都无法得到数字。
所有涉及nan的操作,返回的都是nan,例如:
float('nan') + 9999999 float('nan') - 9999999 float('nan') * 9999999 float('nan') * float('inf') float('nan') / float('inf') float('nan') / float('nan')
结果都是:nan。
情况二:
python mean也会产生nan:
import numpy as np a=[] print(np.isnan(np.mean(a)))
nan来自于numpy中numpy.nan,字面意思应该是Not a Number。在不同代码中有nan,有NaN,有NAN,但其实他们都一样的。
参考博客:
https://www.jianshu.com/p/d9caa4ab46e1
https://blog.csdn.net/weixin_40446557/article/details/89886914