且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python:如何避免在函数定义中出现numpy RuntimeWarning?

更新时间:2022-10-16 12:11:13

在这种情况下,使用numpy.seterr控制numpy的功能:http://docs.scipy.org/doc/numpy/reference/generation/numpy.seterr.html

使用警告模块来控制警告的显示或不显示方式: http://docs.python.org/library /warnings.html

i designed a simple function to return a mathematical function which can be used to fit experimental data to it. The functions looks pretty much like the following:

def colecole_2(f,*p):
    term1=p[0] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[1], p[2])))
    term2=p[3] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[4], p[5])))
    return p[6]*(1-abs( term1+ term2))

Unfortunately I run into troubles with RunTimeWarnings as:

RuntimeWarning: overflow encountered in power
RuntimeWarning: overflow encountered in divide

due to values that are too large or small. I am not able to figure this problem out on my own though. Is there any way to redefine my function so it will pass without warnings?

Use numpy.seterr to control what numpy does in this circumstance: http://docs.scipy.org/doc/numpy/reference/generated/numpy.seterr.html

Use the warnings module to control how warnings are or are not presented: http://docs.python.org/library/warnings.html