¿Cómo puedo tomar la raíz cuadrada de -1 usando python?

Cuando tomo la raíz cuadrada de -1 me da un error:

valor inválido encontrado en sqrt

¿Cómo arreglo eso?

///////// arr=sqrt(-1) print(arr) OUTPUT 

Debe usar el sqrt del módulo cmath (parte de la biblioteca estándar)

 >>> import cmath >>> cmath.sqrt(-1) 1j 

Para evitar la advertencia / error de invalid value , el argumento de la función sqrt de numpy debe ser complejo:

 In [8]: import numpy as np In [9]: np.sqrt(-1+0j) Out[9]: 1j 

Como @AshwiniChaudhary señaló en un comentario, también puede usar la biblioteca estándar de cmath :

 In [10]: cmath.sqrt(-1) Out[10]: 1j 

Acabo de descubrir la función de conveniencia numpy.lib.scimath.sqrt explica en la documentación de sqrt . Lo uso de la siguiente manera:

 >>> from numpy.lib.scimath import sqrt as csqrt >>> csqrt(-1) 1j 

La raíz cuadrada de -1 no es un número real, sino un número imaginario. IEEE 754 no tiene una forma de representar números imaginarios.

Numpy tiene soporte para números complejos. Le sugiero que use eso: http://docs.scipy.org/doc/numpy/user/basics.types.html

Otros probablemente sugirieron métodos más deseables, pero solo para agregar a la conversación, siempre puede multiplicar cualquier número menor que 0 (el valor del cual desea el sqrt, -1 en este caso) por -1, luego tomar el sqrt de ese . Solo debes saber entonces que tu resultado es imaginario.