pythonnumpy

NumPy, RuntimeWarning: invalid value encountered in power


I am working with Python 3.6.
I am really confused, why this happened ?

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

Solution

  • Numpy does not seem to allow fractional powers of negative numbers, even if the power would not result in a complex number. (I actually had this same problem earlier today, unrelatedly). One workaround is to use

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