我有一个处理统计问题的功能:
import numpy as np
from scipy.special import gamma as Gamma
def Foo(xdata):
...
return x1 * (
( #R is a numpy vector
( ((R - x2)/beta) ** (x3 -1) ) *
( np.exp( - ((R - x2) / x4) ) ) /
( x4 * Gamma(x3))
).real
)
有时我会从外壳上得到以下警告:
RuntimeWarning: divide by zero encountered in...
我使用numpyisinf
函数来更正其他文件中函数的结果,因此不需要此警告。
有没有办法忽略这条信息? 换句话说,我不希望shell打印此消息。
我不想禁用所有python警告,仅此一个。
可以用^{} 禁用警告。把这个放在可能被零除的前面:
这将在全球范围内禁用零分区警告。如果只想稍微禁用它们,可以在} :
with
子句中使用^{对于零乘零除法(待定,结果为NaN),错误行为已随numpy版本1.12.0而改变:这现在被视为“无效”,而以前是“除法”。
因此,如果你的分子也有可能为零,使用
或者
请参阅release notes中的“兼容性”部分,即“新功能”部分之前的最后一段:
您还可以使用
numpy.divide
进行除法。这样就不必显式禁用警告。相关问题 更多 >
编程相关推荐