我收到一个错误:149:RuntimeWarning:生成lis时在sqrt中遇到无效值

2024-04-25 05:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

它们应该有用,但是y值有问题,它们返回“nan”


Tags: returndef错误npsqrtnanwidthheight
1条回答
网友
1楼 · 发布于 2024-04-25 05:13:04

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

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

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

相关问题 更多 >