繁体   English   中英

如何使用 python 取 -1 的平方根?

[英]How can I take the square root of -1 using python?

当我取 -1 的平方根时,它给了我一个错误:

sqrt 中遇到无效值

我该如何解决?

from numpy import sqrt
arr = sqrt(-1)
print(arr)

为了避免invalid value警告/错误,numpy 的sqrt函数的参数必须很复杂:

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

此处Numpy 文档的最新附录添加了命令numpy.emath.sqrt ,当负数被馈送到操作中的平方根符号时,该命令返回复数。

-1 的平方根不是实数,而是虚数。 IEEE 754 没有表示虚数的方法。

numpy 支持复数。 我建议你使用它: http ://docs.scipy.org/doc/numpy/user/basics.types.html

其他人可能提出了更理想的方法,但只是为了增加对话,你总是可以将任何小于 0 的数字(你想要的 sqrt 的值,在这种情况下为 -1)乘以 -1,然后取那个 sqrt . 然后就知道你的结果是虚构的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM