此问题在此处已有答案:
What are some possible calculations with numpy or scipy that can return a NaN? [closed](1个答案)
八年前就关门了。
这可能是一个简单的问题,但我不能在一个地方得到所有的答案,所以任何帮助和答案是受欢迎的:).我试图调试一个程序,但后来我意识到我不知道什么是所有可能的操作,可能会导致在python的NAN值.所以这里的问题是什么是所有可能的操作,将导致在python的NAN值特别是numpy矩阵?
举个例子
x=float('nan')
x=x+x
print x
导致
nan
2条答案
按热度按时间nbysray51#
NaN是IEEE 754标准的一部分。类似但不限于inf * 0、inf / inf的操作或任何涉及NaN的操作(例如nan * 1)返回NaN。
http://en.wikipedia.org/wiki/IEEE_754-1985
6qftjkof2#
在numpy land中,你经常会因为非法的数学运算而得到
nan
s。在numpy中进行类似的操作会生成一个nan:
注意,在(python的)默认情况下,你只会得到一次警告。
调试时,查找非法操作,特别是域错误:除以零、负数的平方根等。
nans的第二个主要来源是inf/inf、0/0、0*inf等形式的不定表达式。
最后,由于nans是粘性的(一旦你在表达式中有了第一个nan,它就会传播),在调试时,你通常需要找到 * 第一个 * 失控的操作。