我正在以这种方式在python中定义一个函数:
def calculate(y1,y2,y):
l=np.log(3)
ya=np.array(y1)/(np.array(y)*np.array(l))
yb=np.array(y2)/(np.array(y)*np.array(l))
return (ya,yb)
但是当我运行我的脚本时(即使一切正常)我收到以下错误:
RuntimeWarning: invalid value encountered in divide
ya = np.array(y1)/((np.array(y))*(l))
RuntimeWarning: invalid value encountered in divide
yb = np.array(y2)/((np.array(y))*(l))
我该如何解决这个问题?
答案 0 :(得分:0)
您收到该错误,因为分母数组中有0
或np.inf
值。
除了y
calculcate
之前清理def calculate(y1, y2, y):
if not isinstance(y, np.ndarray):
y = np.array(y)
if not np.isfinite(y):
print 'bad y array values'
return
elif np.sum(y == 0) > 0:
print 'zero values in y'
return
# the rest of your code
RunTimeWarning
请注意,这将停止calculate
,但不会返回任何内容,因此调用{{1}}的函数必须处理该问题。