Python I';我遇到了一个错误<;字符串>;:149:RuntimeWarning:生成列表时在sqrt中遇到无效值

Python I';我遇到了一个错误<;字符串>;:149:RuntimeWarning:生成列表时在sqrt中遇到无效值,python,numpy,sqrt,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, "-") 它们应该可以工作,但是y值有问题,它们返回“nan”可能xs**2返回一个数字>1sqrt使用负数将返回nan

我得到一个错误,指出在平方根中遇到了无效值。我看不出是什么

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, "-")

它们应该可以工作,但是y值有问题,它们返回“nan”

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


如果我是对的,numpy提供了复数功能,我认为这是表示sqrt(x)的唯一方法,其中,当我从-1到1时,这里不应该有任何值是负数的平方根。非挥发性物质。编辑*我现在看到了,我应该有6.5*sqrt(100-(xs**2)),如果你想让numpy在这种情况下给出一个错误,你可以使用
np.seterr(all='raise')
,并给出
FloatingPointError:sqrt中遇到的无效值,而不是
nan
。这里的更多信息这是否回答了你的问题?
sqrt(0) = 0
6.5*sqrt(1- (-1**2)) = 0
>>> import numpy as np
>>> np.sqrt(-1)
nan