numpy.sqrt中的负数

zzlelutf  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(116)

我在写流体流动模拟的代码。我用必要的参数初始化了一个数组。我在这个数组上使用了numpy的sqrt函数。代码抛出一个警告如下:

RuntimeWarning: invalid value encountered in sqrt
  W2[i, :] = (np.sqrt(P2) / (d2 * v2))

我的代码运行良好,在进一步检查时,我发现数组中有一些负值,这些值位于np.sqrt内部。我的问题是,numpy怎么处理这些差异?

svdrlsy4

svdrlsy41#

可以使用seterr()或errstate()来控制此类异常的行为。
根据设置,错误可能会被忽略,产生警告,引发异常,调用给定的函数,打印或记录错误。
当不引发异常时,NumPy会在适当的情况下生成一个包含NaN或Inf值的结果:

>>> a = np.array([0, 1, -1, np.nan, np.inf])
>>> with np.errstate(all='ignore'):
...     print(np.log(a))
...     print(1 / a)
[-inf   0.  nan  nan  inf]
[inf  1. -1. nan  0.]

相关问题