我有一个表达式对某些参数值溢出。在这个例子中,我已经用笔和纸推导出了渐近结果,当我有这种情况时,我就用我的解析表达式来代替。在
目前,我的代码执行如下操作:values = ExpressionThatOverFlows()
# Check the ones that overflow
indOverFlow = isnan(values)
# Set them to the values I derived by pen and paper
values[indOverFlow] = derivedValues
我的问题是I/O会随着“警告”而爆炸。我知道警告我是件好事,但我已经明确地处理好了,所以我想让他们闭嘴。请注意,我不想让所有类型的“溢出”警告静音,只想让这里的那些。我原以为这样的事情会奏效,但却没有:
^{pr2}$
我已经检查过了,但我似乎找到了如何在整个会议期间或永远沉默这些警告,但这是我指出的不是我想要的。在
谢谢你的帮助,非常感谢。在
编辑:下面是一个小得多的代码,它产生了我遇到的问题:from scipy import log1p, exp
from numpy import array, isnan
a = array([0.2222, 500.3, 0.3, 700.8, 0.111])
values = log1p(-exp(-exp(10**a - 9**a)))
print values # Note the nan's
indOverflow = isnan(values)
values[indOverflow] = 0
请注意,最后我是如何“手动”修复问题的,但在I/O中发生的情况是:Warning: overflow encountered in power
Warning: overflow encountered in power
Warning: invalid value encountered in subtract
我在一个循环中进行这种计算,所以我想让这些消息静音(因为它们已经被修复了,而且打印它们需要很多时间)