-1

この方法で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))

どうすれば問題を解決できますか?

4

1 に答える 1

0

分母配列にa0または a値があるため、そのエラーが発生しています。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に対処する必要があることに注意してください。

于 2013-03-07T14:37:44.630 に答える