在python中划分数组

时间:2013-03-07 10:29:51

标签: python arrays numpy

我正在以这种方式在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))

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您收到该错误,因为分母数组中有0np.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}}的函数必须处理该问题。