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

posted @ 2019-10-30 14:42  JQS  阅读(52486)  评论(0编辑  收藏  举报