Wenn ich nehme die Quadratwurzel von -1 es mir einen Fehler gibt:Wie kann ich die Quadratwurzel von -1 mit Python nehmen?
invalid value encountered in sqrt
Wie kann ich das Problem lösen?
/////////
arr=sqrt(-1)
print(arr)
OUTPUT
Wenn ich nehme die Quadratwurzel von -1 es mir einen Fehler gibt:Wie kann ich die Quadratwurzel von -1 mit Python nehmen?
invalid value encountered in sqrt
Wie kann ich das Problem lösen?
/////////
arr=sqrt(-1)
print(arr)
OUTPUT
Sie müssen die sqrt vom cmath Modul verwenden
>>> import cmath
>>> cmath.sqrt(-1)
1j
Die Quadratwurzel von -1 ist keine reelle Zahl, sondern eine imaginäre Zahl. IEEE 754 hat keine Möglichkeit, imaginäre Zahlen darzustellen.
numpy unterstützt komplexe Zahlen. Ich schlage vor, Sie verwenden, dass: http://docs.scipy.org/doc/numpy/user/basics.types.html
Meine Vermutung ist, dass @marriam bereits numpy verwendet, weil 'np.sqrt (-1)' die Warnung 'invalid value arced ...' ergibt, während 'math.sqrt (-1)' zu 'ValueError 'führt: mathematischer Domänenfehler ". –
@WarrenWeckesser Auf jeden Fall hilft ihr eine Würdigung der komplexen Zahlen. – Marcin
yup u r right im bereits mit numpy –
Um die invalid value
Warnung/Fehler zu vermeiden, das Argument zu sqrt
Funktion des numpy muss komplex sein:
In [8]: import numpy as np
In [9]: np.sqrt(-1+0j)
Out[9]: 1j
Wie @AshwiniChaudhary in einem Kommentar darauf hingewiesen, könnten Sie auch die cmath
Standardbibliothek:
In [10]: cmath.sqrt(-1)
Out[10]: 1j
Andere haben wahrscheinlich wünschenswert Methoden vorgeschlagen, aber nur um die Konversation hinzuzufügen, können Sie immer eine Zahl kleiner als 0 (der Wert, den Sie möchten, die sqrt, -1 in diesem Fall) mit -1, dann nehmen Sie das Quadrat davon. Wissen Sie dann, dass Ihr Ergebnis imaginär ist.
Ich habe gerade die Komfortfunktion numpy.lib.scimath.sqrt
in der sqrt documentation erklärt. Ich benutze es wie folgt:
>>> from numpy.lib.scimath import sqrt as csqrt
>>> csqrt(-1)
1j
Nicht sicher über numpy, aber in reinem Python können Sie 'cmath.sqrt (-1)' verwenden. –