Python-Numpy - Komplexe Zahlen - gibt es eine Funktion für Polar-Rechteckig-Konvertierung?
Gibt es eine built-in Numpy-Funktion konvertieren eine komplexe Zahl in polarer form, Größe und Winkel (in Grad) zu einer in realen und imaginären Komponenten?
Klar, ich könnte schreiben, dass meine eigene, aber es scheint, wie die Art von Sache, für die es eine optimierte version, die mit einigen Modul?
Genauer gesagt, ich habe ein array von Größen und eine Vielzahl von Winkeln:
>>> a
array([1, 1, 1, 1, 1])
>>> b
array([120, 121, 120, 120, 121])
Ist und was ich möchte ist:
>>> c
[(-0.5+0.8660254038j),(-0.515038074+0.8571673007j),(-0.5+0.8660254038j),(-0.5+0.8660254038j),(-0.515038074+0.8571673007j)]
Ich bezweifle, dass es einen eingebauten in numpy-Funktion, aber könnten Sie eine Funktion, die zwei arrays und führt die Konvertierung
InformationsquelleAutor atomh33ls | 2013-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht eine Funktion um genau das zu machen, was Sie wollen, aber es ist Winkel, die nicht der schwierigste Teil. Also, man könnte zum Beispiel definieren zwei Funktionen:
Diese Funktionen verwenden Radianten für Eingang und Ausgang, und für Grad, würde man brauchen, um die Konvertierung zu tun, um Bogenmaß in beiden Funktionen.
In der numpy Referenz es gibt einen Abschnitt über die Handhabung von komplexen zahlen, und das ist, wo die Funktion, die Sie suchen aufgeführt würden (da Sie nicht da ist, ich glaube nicht, dass Sie existieren innerhalb von numpy).
angle
undabsolute
erhalten Sie von rechteckig zu polar, aber ich don ' T wissen, einen Weg, um zurück zu gehen.Ich bearbeitet meine Antwort, die Funktionen zu enthalten, gehen beide Richtungen. (Ich habe nicht diese vor, weil die OP wurde speziell sagen, er war auf der Suche nach etwas eingebaut.)
Sie können "get back" von polar zu rechteckig mit
Amplitude*exp(1j*Angle_Radians)
- python drucken und speichern Sie diese als Rechteckiger Komplex, und Sie können().real/().imag
.Um zu vermeiden, confuzion, ich würde die Antwort zu verwenden, die explizit Funktionen aus numpy, z.B.
np.absolute
stattabs
, da letzteres auch eine eingebaute Funktion.sicherlich ist der genaue Grund für operator überladen, und warum numpy nutzt die
__abs__
Methode.InformationsquelleAutor tom10
Es ist ein Fehler in der vorherigen Antwort, die verwendet
numpy.vectorize
- cmath.rect ist nicht ein Modul importiert werden können. Numpy bietet auch die Funktion deg2rad, bietet ein sauberes Stück des Codes für die Winkel-Konvertierung. Eine andere version, der code könnte sein:Den code verwendet numpy die Vektorisieren-Funktion zur Rückgabe eines numpy Stil-version von der standard-Bibliothek
cmath.rect
Funktion, die angewendet werden können, element Weise über numpy arrays.InformationsquelleAutor dyqik
Ich verwendet cmath mit itertools:
InformationsquelleAutor atomh33ls
InformationsquelleAutor Kees
tom10 Antwort, funktioniert einwandfrei... Sie können auch erweitern Sie die Eulersche Formel:
InformationsquelleAutor Thomio