Python Wörterbuch Tutorial (Artikel)

Python Wörterbücher und die Daten Wissenschaft Toolbox

Als Daten Wissenschaftler in Python arbeiten, müssen Sie vorübergehend Daten zu speichern, die ganze Zeit in einer geeigneten Struktur Python Daten zu verarbeiten. Eine spezielle Datenstruktur, die Python bietet nativ ist das Wörterbuch. Sein Name bereits verschenkt, wie die Daten gespeichert ist: ein Stück von Daten oder Werte, die durch einen Schlüssel (Wort) Sie zur Hand haben zugegriffen werden kann.







Wenn Sie das Wort „Python“ in einem Papier Wörterbuch nachschlagen, lassen Sie uns das Oxford Dictionary of English sagen, werden Sie in der Regel, indem Sie versuchen starten, um den Teil des Wörterbuchs zu suchen, die die Wörter, die mit „p“ enthält, dann „y“ , „t“ und so weiter, bis Sie das volle Wort getroffen. Der Wörterbucheintrag werden Ihnen sagen, dass „Python“ ist eine große nicht-giftige Schlange, der seine Beute einengt, oder einen High-Level-Programmiersprache (!).

Ein Papier-Wörterbuch wurde nur eine angesehene Hilfe, weil seine Worte bestellt werden in alphabetischer Reihenfolge und mit einem wenig Übung können Sie ein beliebiges Wort in ihm innerhalb einer Minute finden. Ein Python-Wörterbuch funktioniert in ähnlicher Weise: gespeicherten Wörterbuch Artikel durch ihre Schlüssel sehr schnell abgerufen werden können. Im Gegensatz zu Python-Listen, zum Beispiel, hat Python nachverfolgen, wo eine bestimmte Information zu finden.

In der heutigen Tutorial werden Sie mehr zu folgenden Themen erfahren:

  • wie ein Wörterbuch erstellen, indem die Verwendung von geschweiften Klammern und Doppelpunkten zu machen,
  • wie die Daten in Ihrem Wörterbuch mit Hilfe der urllib und zufälligen Bibliotheken zu laden,
  • wie das Wörterbuch mit Hilfe einer for-Schleife und spezieller Iteratoren Schleife über die Schlüssel und Werte Ihres Wörterbuch zu filtern,
  • wie Operationen auf dem Wörterbuch durchzuführen, um Werte aus dem Wörterbuch zu bekommen oder zu entfernen und wie Sie Wörterbuch Verständnis können Werte aus dem Wörterbuch der Teilmenge,
  • wie ein Wörterbuch mit der Re-Bibliothek sortieren und wie OrderedDict und Lambda-Funktionen können nützlich sein, wenn Sie dies tun, und
  • wie Python Wörterbücher vergleichen, um Listen, NumPy Arrays und Pandas Datenrahmen.

Angenommen, Sie eine Bestandsaufnahme der Frucht machen, die Sie in Ihrem Obstkorb verlassen haben, durch die Anzahl der einzelnen Arten von Obst in einem Wörterbuch zu speichern. Es gibt mehrere Möglichkeiten, um ein Wörterbuch zu konstruieren, aber für dieses Tutorial, werden wir es einfach halten. Für eine komplette Übersicht, chekc die Python-Dokumentation auf Wörterbücher aus.

Die wichtigsten Eigenschaften, mit denen Sie ein Wörterbuch erkennen können, sind die geschweiften Klammern < > und für jedes Element im Wörterbuch, die Trennung der Schlüssel und Wert durch einen Doppelpunkt.

Wie Sie selbst versuchen können, unter der Variable Frucht ist ein gültiger Wörterbuch, und Sie können, indem Sie den Schlüssel in eckigen Klammern [] einen Eintrag aus dem Wörterbuch zugreifen. Alternativ können Sie auch die .get () Methode verwenden, um die gleiche Sache zu tun.

Jetzt werden Sie einige echte Daten in einem Wörterbuch setzen, genauer gesagt, eine verschachtelte Wörterbuch (ein Wörterbuch bedeutet, das ein Wörterbuch als Wert hat und nicht zum Beispiel einen String oder Integer).

Auf diese Weise, Tabellen oder Matrizen können leicht in einem Wörterbuch gespeichert werden.

Die verwendeten Daten sind die Bewertungen von Donna Tartt The Stieglitz im Amazonas-Buchbesprechung vom Machine Learning Repository Irivine gesetzt. Diese Bewertungen wurden in einer einfachen Tabulator getrennte Datei gespeichert, das ist nichts anderes als eine einfache Textdatei mit Spalten. Die Tabelle enthält vier Spalten: Bewertung, URL, Titel der Bewertung und Überprüfung Text.

Es gibt mehrere Möglichkeiten vorstellen kann dies in einem Wörterbuch zu setzen, aber in diesem Fall nehmen Sie die URL als Dictionary-Schlüssel und legen Sie die anderen Spalten in der verschachtelten Werte Wörterbuch.

In diesem Fall waren Sie mit etwas Glück einen Datensatz zu erhalten, die keine fehlenden Werte hat. Das ist natürlich nicht immer der Fall; reale Datensätze „aus dem wilden“ sind oft ein großes Durcheinander (falsche Formatierung, Codierungsfehler, fehlende Daten, etc.), wenn Sie mit ihnen beginnen. Um es einfach zu halten, hat das Tutorial nicht alles in der obigen Skript zur Verfügung stellen zu bewältigen Werte hier fehlt, aber es ist etwas, das Sie in der Regel zu berücksichtigen haben.

Sie können jedoch sicher, leicht, ob alle Schlüssel im Wörterbuch vorhanden sind, indem die Anzahl der Zeilen aus der Datei auf die Anzahl der Dictionary-Schlüssel zu vergleichen. In diesem Fall wird dies sagt Ihnen, es ist sicher zu Datenverarbeitung, um fortzufahren.

Nun, da die Amazon-Bewertungen in einem Wörterbuch gespeichert sind, ist es Zeit, einige Operationen auf, es zu versuchen. Angenommen, Sie sind in den schlechten Kritiken interessiert sind und wollen, um zu sehen, was die Leute nur die Bewertungen durch die Auswahl tatsächlich geschrieben, die 1,0 punkten

Die Bewertung Scores werden in den Wörterbuchwerte gespeichert, was bedeutet, dass Sie eine Schleife über das Wörterbuch haben. Leider (nicht wirklich obwohl), können Sie nicht einfach eine for-Schleife verwenden, um das Wörterbuch Objekt zu gehen. Python-Wörterbuch Artikel beide haben nicht nur einen Schlüssel und einen Wert, aber sie haben auch eine spezielle Iterator Schleife über sie. Statt für Element im Wörterbuch. Sie müssen für Schlüssel, Wert in dictionary.items () verwenden. mit dieser spezifischen Iterator und mit den beiden Variablen, Schlüssel und Wert, anstelle der einzelnen Variablen. Ebenso gibt es separate Iteratoren für Schlüssel (.keys ()) und Werte (.values ​​()).

Sie speichern die Schlüssel der Bewertungen mit einer niedrigen Punktzahl in einer Liste, mit dem Namen lowscores so später einfach in die Liste wiederverwenden kann sie aus dem Wörterbuch abgerufen werden.

Wenn das Wörterbuch den vollständigen Datensatz enthält, groß ist, könnte es klüger, die lowscores Liste verwenden Sie nur ein völlig neues Wörterbuch zusammengestellt zu erstellen. Der Vorteil besteht darin, dass für die weitere Analyse, die Sie nicht das große Wörterbuch im Speicher halten müssen und können nur mit dem entsprechenden Teilmenge der ursprünglichen Daten gehen.

Zunächst verwenden Sie die gespeicherten Schlüssel in lowscores das neue Wörterbuch zu erstellen. Es gibt zwei Möglichkeiten: man ruft nur die relevanten Elemente aus dem ursprünglichen Wörterbuch mit der .get () -Methode dem Original intakt bleibt, die anderen Verwendungen .pop (), die es aus dem ursprünglichen Wörterbuch dauerhaft nicht entfernt.







Der Code für subsetting wie folgt aussehen könnte: Teilmenge = dict ([(k, reviews.get (k)) für k in lowscores]). Diese Notation aussehen könnte, nicht vertraut, weil die Schleife in einer einzigen Zeile Code geschrieben wird. Dieser Stil ist ein „Wörterbuch Comprehensions“ genannt, aber es ist eigentlich eine for-Schleife in der Verkleidung, über die Elemente von lowscores Looping. die Werte aus Bewertungen Abrufen und verwenden diese ein neues Wörterbuch zu füllen. Es ist sehr ähnlich zu einer Liste Verständnis, aber offenbar gibt einen Wörterbuch statt einer Liste.

Es wird jedoch nicht empfohlen Comprehensions zu verwenden, wenn Sie nicht vertraut noch mit diesem Programmierstil sind; die schriftlichen-out for-Schleife ist viel leichter zu lesen und zu verstehen. wie Sie oft zu lesen, jedoch andere Leute Code haben, sollten Sie in der Lage sein, es zu zumindest zu erkennen.

Sie könnten die traditionellen for-Schleife Stil mit dem Wörterbuch Verständnis vergleichen und überprüfen, ob sie tatsächlich die genau das gleiche Ergebnis:

Angenommen, Sie jetzt unser Wörterbuch neu zu ordnen, um die Überprüfung Noten als Dictionary-Schlüssel haben wollen, anstatt der Ide. Sie könnten eine for-Schleife für diese, sowohl die Schlüssel und Werte spezifiziert und eine neue verschachtelte Wörterbuch aufzubauen. Sie haben die ‚Partitur‘ aus dem ursprünglich verschachtelten Wörterbuch abgerufen werden sie als die neuen Schlüssel zu verwenden.

Um den Code ein wenig zu vereinfachen, erstellen Sie den neuen verschachtelten Wörterbuch als Objekt NewValues ​​auf einer separaten Zeile vor der scoredict mit den IDs als Schlüssel und dem NewValues ​​Wörterbuch als ihre Werte ausfüllen:

Sie benötigen die Überprüfung Text ein wenig durch das Entfernen der HTML-Tags und Umwandlung Wörter in Großbuchstaben in Kleinbuchstaben zu verarbeiten. Zum ersten verwenden wir einen regulären Ausdruck, die alle Tags entfernt: re.sub (“<.*?>“,‚‘). Reguläre Ausdrücke sind ein sehr nützliches Werkzeug, wenn sie mit Textdaten zu tun. Sie sind sehr komplex zu kompilieren und auf jeden Fall verdient ein Tutorial ihrer eigenen für (angehende) Daten Wissenschaftler.

aber in diesem Beispiel, brauchen Sie nur das zu erfassen, die mit beginnt < followed by an unknown number (including 0) of any character and closed by >. „“ (Leeren Anführungszeichen): mit nichts ersetzt.

Python hat eine eingebaute Funktion Kapitelle von Worten zu entfernen, indem einfach verketten die Funktion .lowercase () in einen String. Auf diese Weise vermeiden Sie, dass Worte, die aktiviert werden, weil sie am Anfang eines Satzes auftreten, werden als getrennte Wörter gesehen. Es gibt natürlich Fälle, in denen der Großbuchstabe für ein anderes Wort steht, aber diese Erkennung erfordert einige erweiterte Textverarbeitung (so genannte Named Entity Recognition), aber dies ist weit über den Rahmen des Python-Dictionaries.

Als nächstes bauen Sie die Frequenz-Wörterbuch ein defaultdict anstelle eines normalen Wörterbuch verwenden. Dies garantiert, dass jeder „Schlüssel“ ist bereits initialisiert und Sie können nur die Frequenzzahl mit 1 erhöhen.

Wenn Sie sich nicht mit defaultdict wurden. Python würde einen Fehler auslösen, wenn Sie versuchen, die Zählung zum ersten Mal zu erhöhen (so von 0 auf 1), weil der Schlüssel noch nicht existiert. Dies könnte durch die erst überwunden werden, zu überprüfen, ob ein Schlüssel im Wörterbuch vorhanden ist, bevor ihr Wert steigt, aber diese Lösung ist bei weitem nicht elegant im Vergleich zu defaultdict.

Sobald die Frequenz Wörterbuch bereit ist, müssen Sie noch die Schlüssel von Wert sortieren in absteigender Reihenfolge zeitnah zu erkennen, welche Wörter sehr häufig sind. Als Normal Wörterbücher (einschließlich defaultdict nicht durch Design bestellt werden), müssen Sie eine andere Klasse, nämlich OrderedDict. Es speichert ein Wörterbuch in der Reihenfolge wurden die Elemente hinzugefügt. In diesem Fall müssen Sie die Art den Artikel zuerst, bevor sie wieder in der neuen, OrderedDict speichern.

Die sortierte Funktion nimmt 3 Argumente. Die erste ist das Objekt, das Sie, Ihre Frequenz Wörterbuch sortieren möchten. Beachten Sie jedoch, dass in einem Wörterbuch die Schlüsselwertpaare Zugriff durch die .items nur möglich ist, () Funktion. Wenn Sie dies vergessen, wird Python nicht einmal beschweren, aber nur den ersten Schlüssel zurückgeben trifft. Mit anderen Worten: Wenn Sie über ein Wörterbuch sind Looping und Ihr Code verhält sich in einer seltsamen Art und Weise, überprüfen Sie, ob Sie die .items hinzugefügt () Funktion vor dem Start zu schreien.

Das zweite Argument gibt an, welchen Teil des ersten Arguments soll sortiert werden: key = Lambda-Artikel: Artikel [1]. Auch hier werden Sie ein wenig tiefer in die Sprache Python graben müssen, um zu verstehen, worum es geht. Der erste Teil ist ziemlich selbsterklärend: Sie die Schlüssel sortiert werden sollen.

Aber was ist das Lambda da?

Nun, eine Lambda-Funktion ist eine anonyme Funktion, dh es ist eine Funktion ohne Namen und kann nicht von außen aufgerufen werden. Dies ist nicht der Ort noch die Zeit, dies in vollem Umfang zu diskutieren, aber es ist eine alternative Möglichkeit, um eine Schleife über eine ganze Reihe von Objekt mit einer einzigen Funktion. In diesem Fall verwendet es einfach den Wörterbuch Wert (Artikel [1]. Mit Artikeln [0] der Schlüssel zu sein) für die Sortierung als Argument.

Die dritte und letzte Argument umkehren. gibt an, ob (der Standard) oder absteigend aufsteigend ist zu sortieren. In diesem Fall sollten Sie die häufigsten Wörter an der Spitze sehen und ausdrücklich, dass die Reverse angeben müssen = True.

Wenn Sie an der Spitze der sortierten Artikel jetzt sehen sofort, würden Sie durch die Worte enttäuscht sein, dass diese Frequenzliste dominieren. Diese würden nur „Funktionswörter“ wie „der“, „und“, „a“ usw. Englisch (und vielen anderen Sprachen natürlich) ist voll von diesen Worten, aber sie sind in erster Linie zu kleben Sprache zusammen verwendet werden und sie ziemlich bedeutungslos sind in der Isolation.

In Textanalyse, sind so genannte Stop-Listen verwendet, um diese sehr häufigen Worte aus der Analyse zu entfernen. Wir setzen (wieder) einen rudimentären Ansatz durch die oberen 10% Worte zu ignorieren und nur betrachten Worte, die zu dem 90% am häufigsten sind. Sie werden sehen, dass die Spitze dieser Liste interessanter, negativ geladene Worte wie „unangenehm“ und „frustrierend“, aber auch positive wie „fesselnd“ und „wunderbar“ zur Verfügung stellt.

Sie können sich mit dem Schneiden Experiment, in dem Teile der Daten zu sehen Sie interessante Wörter finden.

Wörterbücher sind eine wesentliche Datenstruktur angeboren Python, so dass Sie Daten in Python-Objekte setzen müssen, um es weiter zu verarbeiten. Sie sind, neben Listen und Tupeln, eine der grundlegenden, aber zugleich leistungsfähiger und flexible Datenstrukturen, den Python zu bieten hat. In letzter Zeit jedoch kann ein großer Teil der Wörterbuch-Funktionalität sein und in der Tat durch Pandas ersetzt wird. eine Python Datenanalyse-Bibliothek, die mehr von der Datenverarbeitung und -analyse in Python, anstatt zwingt Sie, als Daten Wissenschaftler halten können, spezialisierte statistische Programmiersprachen (insbesondere R) auf der Seite zu verwenden.

Wenn es off-the-shelf sind Bibliotheken leicht verfügbar ist, warum immer noch die Mühe zu begreifen, was Wörterbücher tun kann?

Nun, es ist immer gut zu Fuß zu lernen, bevor zu laufen versuchen.

Es ist definitiv so, dass Bibliotheken wie Pandas Daten Wissenschaftler ermöglichen schneller und effizienter zu arbeiten, weil sie nicht mehr über die untere Ebene Details müssen stören, wie die Daten gespeichert werden. Pandas verwendet jedoch auch Wörterbücher (neben anderen erweiterten Datenstrukturen wie die NumPy Array) seine Daten zu speichern. Als Ergebnis ist es eine gute Idee zu wissen, wie ein Wörterbuch funktioniert, bevor die harte Arbeit, nämlich verlassen die Daten in den entsprechenden Datenstrukturen, um Pandas zu speichern.

Selbst wenn Pandas verwendet wird, wird es manchmal immer noch empfohlen, Wörterbücher Python zu verwenden, wenn die Situation es erfordert, zum Beispiel, wenn sie nur Werte müssen zugeordnet werden und Sie nicht Pandas Funktionalität für etwas anderes brauchen. ein Pandas Objekt zu verwenden ist in solchen Fällen einfach ineffizient und viel des Guten.

Schließlich enthält Pandas Funktionen ein Wörterbuch zu einem Pandas Datenrahmen und umgekehrt und Datenrahmen umwandeln können Wörterbücher enthalten. Beide sind in der Tat sehr nützlich, Teile der modernen Toolbox Daten Wissenschaftlers.

Was kommt als nächstes?

Glückwünsche! Sie haben das Ende unseres Python-Wörterbuch Tutorial erreicht!

Ergänzen Sie Ihr Lernen durch DataCamp ist die kostenlose Einführung in Python für Daten Wissenschaft Kurs nehmen mehr über die Python Grundlagen zu erlernen, die Sie wissen müssen, um Daten Wissenschaft und die Intermediate Python für Daten Wissenschaft natürlich mehr tun, um den Ablauf zu erfahren. Wenn Sie bereit sind, Pandas zu bewegen, verpassen Sie nicht auf unsere Pandas Foundations Kurs, die in Zusammenarbeit mit Dhavide Aruliah (Continuum Analytics).

Was denken Sie?







In Verbindung stehende Artikel