NumPy,RuntimeWarning:在p中遇到无效值

2024-04-16 23:57:18 发布

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

我正在使用Python 3.6。
我真的很困惑,为什么会这样?

In [1]: import numpy as np

In [2]: a = np.array(-1)

In [3]: a
Out[3]: array(-1)

In [4]: a ** (1/3)
/Users/wonderful/anaconda/bin/ipython:1: RuntimeWarning: invalid        value encountered in power
  #!/Users/wonderful/anaconda/bin/python
Out[4]: nan

Tags: inimportnumpybinvalueasipythonnp
2条回答

将数据类型更改为复数

a = np.array(-1, dtype=np.complex)

当你处理负数的根时,问题就出现了。

Numpy似乎不允许负数的分数幂,即使该幂不会导致复数。(事实上,我今天早些时候也遇到了同样的问题,毫不掩饰)。一个解决办法是

np.sign(a) * (np.abs(a)) ** (1 / 3)

相关问题 更多 >