我正在使用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
答案 0 :(得分:10)
Numpy似乎不允许负数的分数幂,即使权力不会导致复数。 (我今天早些时候实际上遇到了同样的问题,无关紧要)。一种解决方法是使用
np.sign(a) * (np.abs(a)) ** (1 / 3)
答案 1 :(得分:4)
将dtype更改为复数
a = np.array(-1, dtype=np.complex)
当你使用负数的根源时会出现问题。