我收到错误<string>:149:RuntimeWarning:生成列表时在sqrt中遇到无效值</string>

时间:2014-04-08 23:06:15

标签: python numpy sqrt

def ellipse(numPoints, genX=np.linspace, HALF_WIDTH=10, HALF_HEIGHT=6.5):
    xs = 10.*genX(-1,1,numPoints)
    ys = 6.5*np.sqrt(1-(xs**2))
    return(xs, ys, "-")

我收到一条错误,指出在squareroot中遇到了无效值。我看不出它是什么。

sqrt(0) = 0
6.5*sqrt(1- (-1**2)) = 0

他们应该工作,但是y值有问题,他们正在返回“nan”

1 个答案:

答案 0 :(得分:7)

可能xs**2返回一个数字> 1 sqrt,负数将返回nan(不是数字)

>>> import numpy as np
>>> np.sqrt(-1)
nan

如果我是对的numpy提供了复数函数,我认为这是表示sqrt(x)的唯一方法,其中x <0