Ergänzungen bei der Veröffentlichung ...
Es gibt viele Optionen für die Python-Entwicklungsumgebung, und ich frage mich oft, welche ich für meine Arbeit verwenden soll. Meine Antwort darauf überrascht manchmal die Leute. Meine Lieblingsumgebung ist es, Ipython und einen Texteditor zusammen zu verwenden. (In meinem Fall benutze ich Emacs und Atom entsprechend meiner Stimmung richtig) Ipython (kurz für Interactive Python) wurde 2001 von Fernando Perez als erweiterter Python-Interpreter entwickelt und hat sich zu einem Projekt entwickelt, das sich auf die Herstellung von "Werkzeugen für den gesamten Lebenszyklus des Forschungscomputers" konzentriert. Wenn Python die Engine für unsere datenwissenschaftlichen Aufgaben ist Ipython kann als interaktives Control Panel betrachtet werden.
Ipython ist eine nützliche interaktive Python-Oberfläche, bietet aber gleichzeitig viele nützliche (grammatikalische) (erweiterte) Funktionen. (Die folgenden sind besonders nützlich.) Darüber hinaus ist Ipython eng mit dem ** Jupyter-Projekt ** verbunden, das browserbasierte Notizbücher entwickelt, mit denen wir datenwissenschaftliche Ergebnisse entwickeln, zusammenarbeiten, teilen und präsentieren können. Ipython-Notizbücher sind ein Sonderfall der vielen Jupyter-Notizbücher, einschließlich Notizbücher für Julia, R und andere Programmiersprachen. Ein Beispiel für die Bequemlichkeit des Notebook-Formats ist, dass Sie sich nur die Seite ansehen müssen, die Sie gerade lesen. Dies liegt daran, dass alle Manuskripte in diesem Buch aus einer Reihe von Ipython-Notizbüchern bestehen.
IPython ist eine effektive Verwendung von Python für interaktives wissenschaftliches, datenintensives Computing. In diesem Kapitel werden zunächst einige der in der Datenwissenschaft nützlichen Funktionen von Ipython vorgestellt, insbesondere die Grammatik, die Ipython über die Grundfunktionen von Python hinaus bietet. Als nächstes betreten wir einige der nützlicheren Welten von "magischen Befehlen", die die täglichen Aufgaben beim Erstellen und Verwenden von Data Science-Programmen beschleunigen können. Abschließend werden wir einige der Notebook-Funktionen ansprechen, die uns helfen, die Daten zu verstehen und die Ergebnisse zu teilen.
In diesem Kapitel werden zwei Verwendungszwecke für Ipython beschrieben. Ipython-Shell und Ipython-Notizbuch. Der größte Teil des in diesem Kapitel behandelten Inhalts ist für beide relevant, und die vorgestellten Beispiele wechseln je nachdem, was bequemer ist. Es gibt einige Teile, die nur für den einen oder anderen relevant sind, aber in diesem Fall werde ich es ausdrücklich angeben. Bevor wir beginnen, wollen wir uns mit dem Starten der Ipython-Shell und des Ipython-Notizbuchs befassen.
Dieses Kapitel ist nicht zum passiven Lernen gedacht (wie es bei den meisten Büchern der Fall ist). Während Sie dieses Kapitel lesen, empfehlen wir Ihnen, es selbst mit Grammatik und Werkzeugen zu versuchen. Das dadurch bereitgestellte Muskelgedächtnis ist weitaus nützlicher als das, was man einfach durch Lesen dieses Kapitels erhält. Geben Sie zunächst "ipython" in die Befehlszeile ein und starten Sie Ipython. Wenn Sie Anaconda oder EPD installiert haben, sollten Sie einen geeigneten Launcher haben.
Wenn Sie eingeben, sollte eine Eingabeaufforderung wie die folgende angezeigt werden:
IPython 4.0.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]:
Jetzt können Sie weitermachen.
Jupyter Notebook ist eine browserbasierte IPython-Benutzeroberfläche mit zahlreichen dynamischen Anzeigefunktionen. Benutzer können nicht nur Python / IPython-Syntax ausführen, sondern auch formatierten Text, statische oder dynamische visuelle Effekte, Formeln, JavaScript-Widgets usw. in ihre Notizbücher aufnehmen. Darüber hinaus können diese Dokumente in einem Format gespeichert werden, das andere selbst erstellen können.
Sie können IPython-Notizbücher im Webbrowser-Fenster anzeigen und bearbeiten, müssen jedoch den Webbrowser mit dem Python-Prozess verbinden, um den Python-Code auszuführen. Dieser Prozess (auch als Kernel bezeichnet) kann gestartet werden, indem der folgende Code in der Shell ausgeführt wird.
$ jupyter notebook
Dieser Befehl startet einen lokalen Webserver, den Sie in Ihrem Browser sehen können. Ein Protokoll darüber, was dieser Server tut, wird sofort ausgespuckt. Wie nachstehend.
$ jupyter notebook
[NotebookApp] Serving notebooks from local directory: /Users/jakevdp/PythonDataScienceHandbook
[NotebookApp] 0 active kernels
[NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Nach dem Ausführen dieses Befehls sollte der Standardbrowser automatisch geöffnet werden und Sie zu Ihrer lokalen URL weiterleiten. (Die tatsächliche Adresse hängt von der Umgebung ab.) Wenn der Browser nicht automatisch geöffnet wird, können Sie das Fenster manuell öffnen, indem Sie zur folgenden Adresse springen. (Http: // localhost: 8888 / in diesem Beispiel)
Wenn Sie nicht beabsichtigen, die anderen Abschnitte in diesem Kapitel zu lesen, lesen Sie einfach diesen Abschnitt. Weil ich festgestellt habe, dass die hier diskutierten Tools am meisten zur Verbesserung von IPython für meinen Workflow beigetragen haben. Wenn eine technikorientierte Person von einem Freund, Familienmitglied oder Kollegen um Hilfe zu einem Computerproblem gebeten wird, weiß sie fast immer, wie sie zur Antwort kommt, so schnell sie die Antwort auf das Problem kennt. Dies ist sehr wichtig. Gleiches gilt für die Welt der Datenwissenschaft. Durchsuchbare Webressourcen wie Online-Dokumente, Mailinglistenthreads und StackOverflow-Antworten sind reich an Informationen. Auch wenn es (oder besonders) ein Thema ist, nach dem Sie in der Vergangenheit gesucht haben. Ein echter Experte zu werden bedeutet nicht so sehr, die Tools und Befehle zu erlernen, die in jeder Situation verwendet werden können, sondern wie effektiv eine Websuchmaschine Informationen finden kann, die Sie nicht kennen.
Eine der nützlichsten Funktionen von IPython / Jupyter besteht darin, die Lücke zwischen Benutzern und Dokumenttypen zu schließen und zu suchen, um die Aufgabe effizient zu erledigen. Während die Websuche immer noch dazu dient, Antworten auf komplexe Probleme zu liefern, kann eine überraschende Menge an Informationen nur über IPython abgerufen werden. Unten finden Sie ein Beispiel für eine Frage, die Ipython mit wenigen Tastenanschlägen beantworten kann. ・ Wie soll ich diese Funktion aufrufen? Was sind die Argumente und Optionen? -Was ist der Quellcode dieses Python-Objekts? -Was ist in diesem importierten Paket? Welche Attribute und Methoden haben Sie? Von hier aus werden die Tools von Ipython erläutert, mit denen Sie schnell auf diese Informationen zugreifen können. Das heißt "?", Um nach Dokumenten zu suchen, "??", um nach Quellcode zu suchen, und Tabulatortasten, um sie automatisch zu vervollständigen.
Die Sprache Python und sein Data Science-Ökosystem wurden speziell für Benutzer entwickelt. Eine der wichtigsten Überlegungen ist der Zugriff auf Dokumentation. Alle Python-Objekte enthalten Verweise auf Zeichenfolgen, die als Dokumentzeichenfolgen bezeichnet werden. Dies ist meistens eine kurze Zusammenfassung der Verwendung des Objekts. Python verfügt über eine integrierte Funktion, die auf die Informationen "help ()" zugreift und diese anzeigt. Wenn Sie beispielsweise die Dokumentation für die integrierte Funktion "len" anzeigen möchten, gehen Sie wie folgt vor:
In [1]: help(len)
Help on built-in function len in module builtins:
len(...)
len(object) -> integer
Return the number of items of a sequence or mapping.
Je nach Interpreter werden diese Informationen möglicherweise als Inline-Text oder als separates Popup-Fenster angezeigt.
Da es üblich und bequem ist, Hilfe zu einem Objekt zu finden, bietet Ipython Zugriff auf dieses Dokument und zugehörige Informationen mit einem kurzen "?".
In [2]: len?
Type: builtin_function_or_method
String form: <built-in function len>
Namespace: Python builtin
Docstring:
len(object) -> integer
Return the number of items of a sequence or mapping.
Diese Notation gilt für alles, einschließlich Methoden von Objekten.
In [3]: L = [1, 2, 3]
In [4]: L.insert?
Type: builtin_function_or_method
String form: <built-in method insert of list object at 0x1024b8ea8>
Docstring: L.insert(index, object) -- insert object before index
Oder sogar das Objekt selbst hat ein Dokument, das mit Typinformationen beginnt.
In [5]: L?
Type: list
String form: [1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
Wichtig ist, dass dies auch für Funktionen und eigene Objekte funktioniert! Angenommen, Sie definieren eine solche Dokumentzeichenfolge für eine kleine Funktion.
In [6]: def square(a):
....: """Return the square of a."""
....: return a ** 2
....:
Beachten Sie beim Erstellen einer Dokumentzeichenfolge für diese Funktion, dass wir diesmal nur ein einzelnes Zeichenfolgenliteral geschrieben haben. Dies liegt daran, dass Pythons "" "häufig über mehrere Zeilen hinweg verwendet wird und Docstrings normalerweise aus mehreren Zeilen bestehen.
Verwenden wir jetzt "?", Um diese Dokumentzeichenfolge zu finden.
In [7]: square?
Type: function
String form: <function square at 0x103713cb0>
Definition: square(a)
Docstring: Return the square of a.
Recommended Posts