IPython - Magische Befehle
Magische Befehle oder magische Funktionen sind eine der wichtigen Verbesserungen, die IPython im Vergleich zur Standard-Python-Shell bietet. Diese magischen Befehle sollen häufig auftretende Probleme bei der Datenanalyse mit Python lösen. Tatsächlich steuern sie das Verhalten von IPython selbst.
Magische Befehle fungieren als praktische Funktionen, bei denen die Python-Syntax nicht die natürlichste ist. Sie sind nützlich, um ungültige Python-Syntax in ihren Workflow einzubetten.
Arten von magischen Befehlen
Es gibt zwei Arten von magischen Befehlen:
- Linienmagie
- Zellmagie
Linienmagie
Sie ähneln Befehlszeilenaufrufen. Sie beginnen mit% Zeichen. Der Rest der Zeile ist das Argument, das ohne Klammern oder Anführungszeichen übergeben wird. Linienmagie kann als Ausdruck verwendet werden und ihr Rückgabewert kann einer Variablen zugewiesen werden.
Zellmagie
Sie haben %% Zeichenpräfix. Im Gegensatz zu zeilenmagischen Funktionen können sie auf mehreren Leitungen unterhalb ihres Anrufs arbeiten. Sie können tatsächlich willkürliche Änderungen an der Eingabe vornehmen, die sie erhalten, die nicht einmal ein gültiger Python-Code sein muss. Sie erhalten den gesamten Block als einzelne Zeichenfolge.
Verwenden Sie den Befehl magic, um mehr über magische Funktionen, die integrierte Magie und ihre Dokumentzeichenfolgen zu erfahren. Informationen über eine bestimmte magische Funktion werden von% erhaltenmagicfunction?Befehl. Lassen Sie uns nun einige der eingebauten magischen Befehle für Linien und Zellen beschreiben.
Eingebaute Linienmagie
%autocall [mode]
Diese magische Funktion macht eine Funktion automatisch aufrufbar, ohne Klammern verwenden zu müssen. Es werden drei mögliche Modusparameter benötigt:0 (off), 1 (smart) is default oder 2 (always on).
% automagic
Magische Funktionen können aufgerufen werden, ohne dass das anfängliche% eingegeben werden muss, wenn es auf 1 gesetzt ist. Ohne Argumente wird es ein- und ausgeschaltet. Zum Deaktivieren auf 0 setzen.
Das folgende Beispiel zeigt eine magische Funktion %pwd (zeigt das aktuelle Arbeitsverzeichnis an) wird aufgerufen, ohne% zu führen, wenn% automagic auf 1 gesetzt ist
%CD
Diese Zeilenmagie ändert das aktuelle Verzeichnis. Dieser Befehl verwaltet automatisch eine interne Liste der Verzeichnisse, die Sie während Ihrer IPython-Sitzung besuchen, in der Variablen _dh. Sie können auch 'cd - <tab>' ausführen, um den Verzeichnisverlauf bequem anzuzeigen.
Verwendung
Der Befehl% cd kann auf folgende Arten verwendet werden:
%cd <dir> - Ändert das aktuelle Arbeitsverzeichnis in <dir>
%cd.. - Ändert das aktuelle Verzeichnis in das übergeordnete Verzeichnis
%cd - wechselt zum zuletzt besuchten Verzeichnis.
% dhist
Dieser magische Befehl druckt alle Verzeichnisse, die Sie in der aktuellen Sitzung besucht haben. Jedes Mal, wenn der Befehl% cd verwendet wird, wird diese Liste in aktualisiert_dh Variable.
%bearbeiten
Dieser magische Befehl ruft den Standardtexteditor des aktuellen Betriebssystems (Notepad für Windows) zum Bearbeiten eines Python-Skripts auf. Das Skript wird ausgeführt, wenn der Editor geschlossen wird.
% env
Dieser magische Befehl listet alle Umgebungsvariablen auf. Es liest auch den Wert einer bestimmten Variablen oder legt den Wert der Umgebungsvariablen fest.
Usage
Der Befehl% cd kann auf folgende Arten verwendet werden:
%env - Listet alle Umgebungsvariablen auf
%env var - Ruft den Wert für var ab
%env var val - Legt den Wert für var fest
% gui [GUINAME]
Bei Verwendung ohne Argument aktiviert oder deaktiviert dieser Befehl die Integration der IPython-GUI-Ereignisschleife. Mit dem Argument GUINAME ersetzt diese Magie die Standard-GUI-Toolkits durch das angegebene.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | %gui wx Aktivieren Sie die Integration der wxPython-Ereignisschleife |
2 | %gui qt4|qt Aktivieren Sie die PyQt4-Ereignisschleifenintegration |
3 | %gui qt5 Aktivieren Sie die PyQt5-Ereignisschleifenintegration |
4 | %gui gtk Aktivieren Sie die PyGTK-Ereignisschleifenintegration |
5 | %gui gtk3 Aktivieren Sie die Integration der Gtk3-Ereignisschleife |
6 | %gui tk Aktivieren Sie die Tk-Ereignisschleifenintegration |
7 | %gui osx Aktivieren Sie die Integration der Cocoa-Ereignisschleife |
8 | (erfordert% matplotlib 1.1) |
9 | %gui Deaktivieren Sie die gesamte Ereignisschleifenintegration |
% lsmagisch
Zeigt alle derzeit verfügbaren magischen Funktionen an
% matplotlib
Diese Funktion aktiviert die interaktive Unterstützung von matplotlib während einer IPython-Sitzung. Es wird jedoch keine matplotlib-Bibliothek importiert. Das Standard-GUI-Toolkit von matplotlib ist TkAgg. Sie können jedoch explizit ein anderes GUI-Backend anfordern. Sie können eine Liste der verfügbaren Backends wie gezeigt sehen -
In [4]: %matplotlib --list
Available matplotlib backends:
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']
Die hier gezeigte IPython-Sitzung zeichnet eine Sinuswelle mit qt Toolkit -
Bei Verwendung des Jupyter-Notizbuchs zeigt die Inline-Direktive% matplotlib die Plotausgabe nur im Browser an.
%Notizbuch
Diese Funktion konvertiert den aktuellen IPython-Verlauf in eine IPython-Notizbuchdatei mit der Erweiterung ipynb. Die Eingabezellen im vorherigen Beispiel werden als sine.ipynb gespeichert
%notebook sine.ipynb
% pinfo
Diese Funktion ähnelt der Objektintrospektion? Charakter. Verwenden Sie den folgenden Befehl, um Informationen zu einem Objekt abzurufen:
%pinfo object
Dies ist auch zu object? oder ?object.
%Präzision
Diese magische Funktion beschränkt ein Gleitkommaergebnis auf bestimmte Ziffern nach der Dezimalstelle.
% pwd
Diese magische Funktion gibt das aktuelle Arbeitsverzeichnis zurück.
% Pylab
Diese Funktion füllt die aktuelle IPython-Sitzung mit Matplotlib- und Numpy-Bibliotheken.
%erinnern
Bei Ausführung ohne Parameter führt diese Funktion den vorherigen Befehl aus.
Beachten Sie, dass in %recall nDie Nummer davor ist die eingegebene Zellennummer. Daher wird der Befehl in der n-ten Zelle abgerufen. Sie können Befehle in Zellabschnitten mit Befehlen wie z%recall 1-4. Die aktuelle Eingabezelle wird mit der zurückgerufenen Zelle gefüllt und der Cursor blinkt, bis die Eingabetaste gedrückt wird.
%Lauf
Dieser Befehl führt ein Python-Skript in der IPython-Shell aus.
%Zeit
Dieser Befehl zeigt die Zeit an, die die IPython-Umgebung benötigt, um einen Python-Ausdruck auszuführen.
% timeit
Diese Funktion zeigt auch die Zeit an, die die IPython-Umgebung benötigt, um einen Python-Ausdruck auszuführen. Die zeitliche Ausführung einer Python-Anweisung oder eines Python-Ausdrucks verwendet das timeit-Modul. Diese Funktion kann sowohl als Linien- als auch als Zellmagie verwendet werden, wie hier erläutert -
Im line mode Sie können eine einzelne Zeile zeitlich festlegen.
Im cell modewird die Anweisung in der ersten Zeile als Setup-Code verwendet und der Körper der Zelle wird zeitlich festgelegt. Der Zellkörper hat Zugriff auf alle Variablen, die im Setup-Code erstellt wurden.
%Wer
Diese Linienmagie druckt alle interaktiven Variablen mit minimaler Formatierung. Wenn Argumente angegeben werden, werden nur Variablen gedruckt, deren Typ mit einem dieser Argumente übereinstimmt.
IPython Custom Line Magic-Funktion
Die IPython-Kernbibliothek enthält register_line_magic decorator. Eine benutzerdefinierte Funktion wird mit diesem Dekorator in eine zeilenmagische Funktion umgewandelt.