当我取 -1 的平方根时,它给了我一个错误:
sqrt 中遇到无效值
我该如何解决?
from numpy import sqrt
arr = sqrt(-1)
print(arr)
为避免invalid value
警告/错误,numpysqrt
函数的参数必须很复杂:
In [8]: import numpy as np
In [9]: np.sqrt(-1+0j)
Out[9]: 1j
正如@AshwiniChaudhary 在评论中指出的那样,您也可以使用cmath
标准库:
In [10]: cmath.sqrt(-1)
Out[10]: 1j
我刚刚发现了sqrt 文档numpy.lib.scimath.sqrt
中解释的便利功能。我使用它如下:
>>> from numpy.lib.scimath import sqrt as csqrt
>>> csqrt(-1)
1j
您需要使用cmath模块(标准库的一部分)中的 sqrt
>>> import cmath
>>> cmath.sqrt(-1)
1j
Others have probably suggested more desirable methods, but just to add to the conversation, you could always multiply any number less than 0 (the value you want the sqrt of, -1 in this case) by -1, then take the sqrt of that. Just know then that your result is imaginary.
-1 的平方根不是实数,而是虚数。IEEE 754 没有表示虚数的方法。
numpy 支持复数。我建议你使用它:http ://docs.scipy.org/doc/numpy/user/basics.types.html