Inhaltsverzeichnis
Challenge
Laden der Daten
Pythons Jahresprozentsatz
Zukünftige PyTubes-Verbesserungen
Heim Backend-Entwicklung Python-Tutorial Analysieren Sie mit Python 1,4 Milliarden Daten

Analysieren Sie mit Python 1,4 Milliarden Daten

Apr 12, 2023 pm 10:19 PM
python 数据

Analysieren Sie mit Python 1,4 Milliarden Daten

Google Ngram Viewer ist ein unterhaltsames und nützliches Tool, das Googles riesigen Schatz an aus Büchern gescannten Daten nutzt, um Änderungen im Wortgebrauch im Laufe der Zeit darzustellen. Zum Beispiel das Wort Python (Groß-/Kleinschreibung beachten):

Analysieren Sie mit Python 1,4 Milliarden Daten

Dieses Bild von: Books.google.com/ngrams… zeigt das Wort „Python-Verwendung vorbei“. Zeit.

Es basiert auf dem N-Gramm-Datensatz von Google, der die Verwendung eines bestimmten Wortes oder einer bestimmten Phrase in Google Books für jedes Jahr aufzeichnet, in dem das Buch gedruckt wurde. Dies ist jedoch nicht vollständig (es umfasst nicht jedes jemals veröffentlichte Buch!), der Datensatz umfasst Millionen von Büchern aus dem Zeitraum vom 16. Jahrhundert bis 2008. Der Datensatz kann hier kostenlos heruntergeladen werden.

Ich habe mich entschieden, Python und meine neue Datenladebibliothek PyTubes zu verwenden, um zu sehen, wie einfach es war, das obige Diagramm neu zu generieren.

Challenge

Ein 1-Gramm-Datensatz kann auf 27 GB Daten auf der Festplatte erweitert werden, was beim Einlesen in Python eine große Datenmenge darstellt. Python kann problemlos Gigabytes an Daten gleichzeitig verarbeiten, aber wenn die Daten beschädigt und verarbeitet werden, werden sie langsamer und weniger speichereffizient.

Insgesamt sind diese 1,4 Milliarden Daten (1.430.727.243) in 38 Quelldateien verstreut, mit insgesamt 24 Millionen (24.359.460) Wörtern (und Wortart-Tags, siehe unten), Berechnet von 1505 bis 2008.

Bei der Verarbeitung von 1 Milliarde Datenzeilen kann es schnell zu Verzögerungen kommen. Und natives Python ist nicht für die Verarbeitung dieses Datenaspekts optimiert. Glücklicherweise ist Numpy wirklich gut im Umgang mit großen Datenmengen. Mit einigen einfachen Tricks können wir diese Analyse mithilfe von Numpy durchführen.

Der Umgang mit Strings in Python/Numpy ist kompliziert. Der Speicheraufwand für Zeichenfolgen in Python ist erheblich, und Numpy kann nur Zeichenfolgen bekannter und fester Länge verarbeiten. Aufgrund dieser Situation sind die meisten Wörter unterschiedlich lang, was nicht ideal ist.

Laden der Daten

Alle folgenden Codes/Beispiele laufen auf einem 2016 MacBook Pro mit 8 GB RAM. Wenn die Hardware oder Cloud-Instanz über eine bessere RAM-Konfiguration verfügt, ist die Leistung besser.

1-Gramm-Daten werden in der Datei in Form einer Tabulatortastentrennung gespeichert, die wie folgt aussieht:

Analysieren Sie mit Python 1,4 Milliarden Daten

#🎜🎜 #Jedes A-Datenelement enthält die folgenden Felder:

Analysieren Sie mit Python 1,4 Milliarden Daten

Um Diagramme nach Bedarf zu erstellen, müssen wir nur diese Informationen kennen, das heißt:

#🎜 🎜#

Analysieren Sie mit Python 1,4 Milliarden DatenDurch das Extrahieren dieser Informationen werden die zusätzlichen Kosten für die Verarbeitung von Zeichenfolgendaten unterschiedlicher Länge ignoriert, aber wir müssen die Werte trotzdem vergleichen aus verschiedenen Zeichenfolgen, um zu unterscheiden, welche Datenzeilen es sind. Es gibt Felder, die uns interessieren. Das können Pytubes:

Analysieren Sie mit Python 1,4 Milliarden Daten

Analysieren Sie mit Python 1,4 Milliarden DatenNach fast 170 Sekunden (3 Minuten) ist one_grams ein Numpy-Array, das fast 1,4 Milliarden Datenzeilen enthält und wie folgt aussieht (zur Veranschaulichung werden Tabellenüberschriften hinzugefügt): ════ ═╪════════╪══════════ 🎜#├───── ────── ┼────────┼─ ────────┤

│ 0 │ 1804 │ 1 │

├ ──────── ───┼───── ───┼─────────┤

│ 0 │ 1805 │ 1 │

├──── ──────┼─ ───────┼─────────┤

│ 0 │ 1811 │ 1. │

├ ──────── ──┼────────┼─────────┤

│ 0 │ 1820 │ ... │

# 🎜🎜#╘══ ═════════╧════════╧═════ ════╛#🎜 🎜#

Von hier aus geht es nur noch darum, Numpy-Methoden zu verwenden, um etwas zu berechnen:

Gesamter Wortgebrauch pro Jahr

Google zeigt jeden Prozentsatz des Vorkommens eines Wortes an (die Häufigkeit, mit der ein Wort in diesem Jahr vorkam / die Gesamtzahl des Vorkommens aller Wörter in diesem Jahr), was nützlicher ist als nur das Zählen der ursprünglichen Wörter. Um diesen Prozentsatz zu berechnen, müssen wir die Gesamtzahl der Wörter kennen.

Glücklicherweise macht Numpy das ganz einfach:

Analysieren Sie mit Python 1,4 Milliarden Daten

Plotten Sie dieses Diagramm, um zu zeigen, wie viel Google jedes Jahr sammelt. Wie viele Wörter :

Analysieren Sie mit Python 1,4 Milliarden Daten

Es ist klar, dass die Gesamtdatenmenge vor 1800 rapide zurückgegangen ist, sodass das Endergebnis diesmal verzerrt und verborgen ist Muster, die uns interessieren . Um dieses Problem zu vermeiden, importieren wir nur Daten nach 1800:

Analysieren Sie mit Python 1,4 Milliarden Daten

Dies gibt 1,3 Milliarden Datenzeilen zurück (nur 3,7 % der Daten vor 1800).

Analysieren Sie mit Python 1,4 Milliarden Daten

Pythons Jahresprozentsatz

Pythons Jahresprozentsatz zu erhalten ist jetzt besonders einfach.

Erstellen Sie mit einem einfachen Trick ein Array basierend auf dem Jahr. Die Elementlänge 2008 bedeutet, dass der Index jedes Jahres gleich der Zahl des Jahres ist, sodass beispielsweise 1995 nur die Elemente erhält Problem von 1995.

Es lohnt sich nicht, Numpy für die Operation zu verwenden:

Analysieren Sie mit Python 1,4 Milliarden Daten

Zeichnen Sie das Ergebnis von word_counts:

#🎜🎜 #

Analysieren Sie mit Python 1,4 Milliarden Daten

Die Form ähnelt der Google-Version

Analysieren Sie mit Python 1,4 Milliarden Daten

Der tatsächliche Prozentsatz stimmt nicht überein, ich denke schon weil der heruntergeladene Datensatz unterschiedliche Wörter enthält (zum Beispiel: Python_VERB). Dieser Datensatz wird auf der Google-Seite nicht sehr gut erklärt und wirft mehrere Fragen auf:

Wie verwenden wir Python als Verb?

Beinhaltet die Gesamtberechnungsmenge von „Python“ „Python_VERB“? Warte

Glücklicherweise wissen wir alle, dass die von mir verwendete Methode ein Symbol generiert, das Google sehr ähnlich sieht, und die damit verbundenen Trends nicht beeinträchtigt werden, daher werde ich in dieser Untersuchung nicht versuchen, das Problem zu beheben Es .

Leistung

Google generiert das Bild in etwa 1 Sekunde, was im Vergleich zu den 8 Minuten für dieses Skript angemessen ist. Das Wortzähl-Backend von Google basiert auf einer expliziten Ansicht des vorbereiteten Datensatzes.

Wenn Sie beispielsweise den gesamten Wortgebrauch für das Vorjahr im Voraus berechnen und ihn in einer separaten Nachschlagetabelle speichern, können Sie viel Zeit sparen. Ebenso wird die Verarbeitungszeit fast vollständig eingespart, wenn die Wortverwendung in einer separaten Datenbank/Datei gespeichert und dann die erste Spalte indiziert wird.

Diese Untersuchung zeigt wirklich, wie man beliebige Statistiken aus einem Milliarden-Zeilen-Datensatz in angemessener Zeit laden, verarbeiten und extrahieren kann, indem man Numpy und die jungen Pytubes mit Standard-Hardware und Python-Informationen verwendet.

Sprachkrieg

Um dieses Konzept anhand eines etwas komplexeren Beispiels zu demonstrieren, habe ich beschlossen, drei verwandte Programmiersprachen zu vergleichen: Python, Pascal und Perl

# 🎜🎜#Die Quelldaten sind verrauscht (sie enthalten alle verwendeten englischen Wörter, nicht nur Erwähnungen von Programmiersprachen, und Python hat beispielsweise auch nichttechnische Bedeutungen!), um diesen Aspekt anzupassen, haben wir zwei Dinge getan:

Nur die Namensform mit großgeschriebenem Anfangsbuchstaben kann abgeglichen werden (Python, nicht Python)

Jede Sprache Die Gesamtzahl der Erwähnungen wurde in einen prozentualen Durchschnitt von 1800 umgerechnet bis 1960, was eine vernünftige Grundlage liefern sollte, wenn man bedenkt, dass Pascal erstmals 1970 erwähnt wurde.

Ergebnisse:

Analysieren Sie mit Python 1,4 Milliarden DatenIm Vergleich zu Google (ohne jegliche Basisanpassung):

Analysieren Sie mit Python 1,4 Milliarden Daten

Laufzeit: Etwas mehr als 10 Minuten

Zukünftige PyTubes-Verbesserungen

Zu diesem Zeitpunkt verfügt Pytubes nur über das Konzept einer einzelnen Ganzzahl, also 64 Bit. Dies bedeutet, dass die von pytubes generierten Numpy-Arrays i8-D-Typen für alle Ganzzahlen verwenden. An manchen Stellen (z. B. bei ngrams-Daten) sind 8-Bit-Ganzzahlen etwas übertrieben und verschwenden Speicher (das gesamte ndarray beträgt 38 GB, dtypes kann dies leicht um 60 % reduzieren). Ich habe vor, etwas Ganzzahlunterstützung der Stufen 1, 2 und 4 hinzuzufügen (github.com/stestagg/py…)

Mehr Filterlogik – Tube.skip_unless() ist eine relativ einfache Möglichkeit, Zeilen zu filtern, aber es fehlt die Fähigkeit zum Kombinieren Bedingungen (UND/ODER/NICHT). Dies kann in einigen Anwendungsfällen die Größe der geladenen Daten schneller reduzieren.

Bessere Zeichenfolgenübereinstimmung – einfache Tests wie „startswith“, „endswith“, „contains“ und „is_one_of“ können einfach hinzugefügt werden, um die Effektivität des Ladens von Zeichenfolgendaten erheblich zu verbessern.

Das obige ist der detaillierte Inhalt vonAnalysieren Sie mit Python 1,4 Milliarden Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Muss MySQL bezahlen? Muss MySQL bezahlen? Apr 08, 2025 pm 05:36 PM

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

So verwenden Sie MySQL nach der Installation So verwenden Sie MySQL nach der Installation Apr 08, 2025 am 11:48 AM

Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

MySQL kann nach dem Herunterladen nicht installiert werden MySQL kann nach dem Herunterladen nicht installiert werden Apr 08, 2025 am 11:24 AM

Die Hauptgründe für den Fehler bei MySQL -Installationsfehlern sind: 1. Erlaubnisprobleme, Sie müssen als Administrator ausgeführt oder den Sudo -Befehl verwenden. 2. Die Abhängigkeiten fehlen, und Sie müssen relevante Entwicklungspakete installieren. 3. Portkonflikte müssen Sie das Programm schließen, das Port 3306 einnimmt, oder die Konfigurationsdatei ändern. 4. Das Installationspaket ist beschädigt. Sie müssen die Integrität herunterladen und überprüfen. 5. Die Umgebungsvariable ist falsch konfiguriert und die Umgebungsvariablen müssen korrekt entsprechend dem Betriebssystem konfiguriert werden. Lösen Sie diese Probleme und überprüfen Sie jeden Schritt sorgfältig, um MySQL erfolgreich zu installieren.

Die MySQL -Download -Datei ist beschädigt und kann nicht installiert werden. Reparaturlösung Die MySQL -Download -Datei ist beschädigt und kann nicht installiert werden. Reparaturlösung Apr 08, 2025 am 11:21 AM

Die MySQL -Download -Datei ist beschädigt. Was soll ich tun? Wenn Sie MySQL herunterladen, können Sie die Korruption der Datei begegnen. Es ist heutzutage wirklich nicht einfach! In diesem Artikel wird darüber gesprochen, wie dieses Problem gelöst werden kann, damit jeder Umwege vermeiden kann. Nach dem Lesen können Sie nicht nur das beschädigte MySQL -Installationspaket reparieren, sondern auch ein tieferes Verständnis des Download- und Installationsprozesses haben, um zu vermeiden, dass Sie in Zukunft stecken bleiben. Lassen Sie uns zunächst darüber sprechen, warum das Herunterladen von Dateien beschädigt wird. Dafür gibt es viele Gründe. Netzwerkprobleme sind der Schuldige. Unterbrechung des Download -Prozesses und der Instabilität im Netzwerk kann zu einer Korruption von Dateien führen. Es gibt auch das Problem mit der Download -Quelle selbst. Die Serverdatei selbst ist gebrochen und natürlich auch unterbrochen, wenn Sie sie herunterladen. Darüber hinaus kann das übermäßige "leidenschaftliche" Scannen einer Antiviren -Software auch zu einer Beschädigung von Dateien führen. Diagnoseproblem: Stellen Sie fest, ob die Datei wirklich beschädigt ist

Braucht MySQL das Internet? Braucht MySQL das Internet? Apr 08, 2025 pm 02:18 PM

MySQL kann ohne Netzwerkverbindungen für die grundlegende Datenspeicherung und -verwaltung ausgeführt werden. Für die Interaktion mit anderen Systemen, Remotezugriff oder Verwendung erweiterte Funktionen wie Replikation und Clustering ist jedoch eine Netzwerkverbindung erforderlich. Darüber hinaus sind Sicherheitsmaßnahmen (wie Firewalls), Leistungsoptimierung (Wählen Sie die richtige Netzwerkverbindung) und die Datensicherung für die Verbindung zum Internet von entscheidender Bedeutung.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

Lösungen für den Dienst, der nach der MySQL -Installation nicht gestartet werden kann Lösungen für den Dienst, der nach der MySQL -Installation nicht gestartet werden kann Apr 08, 2025 am 11:18 AM

MySQL hat sich geweigert, anzufangen? Nicht in Panik, lass es uns ausprobieren! Viele Freunde stellten fest, dass der Service nach der Installation von MySQL nicht begonnen werden konnte, und sie waren so ängstlich! Mach dir keine Sorgen, dieser Artikel wird dich dazu bringen, ruhig damit umzugehen und den Mastermind dahinter herauszufinden! Nachdem Sie es gelesen haben, können Sie dieses Problem nicht nur lösen, sondern auch Ihr Verständnis von MySQL -Diensten und Ihren Ideen zur Fehlerbehebungsproblemen verbessern und zu einem leistungsstärkeren Datenbankadministrator werden! Der MySQL -Dienst startete nicht und es gibt viele Gründe, von einfachen Konfigurationsfehlern bis hin zu komplexen Systemproblemen. Beginnen wir mit den häufigsten Aspekten. Grundkenntnisse: Eine kurze Beschreibung des Service -Startup -Prozesses MySQL Service Startup. Einfach ausgedrückt, lädt das Betriebssystem MySQL-bezogene Dateien und startet dann den MySQL-Daemon. Dies beinhaltet die Konfiguration

So optimieren Sie die Datenbankleistung nach der MySQL -Installation So optimieren Sie die Datenbankleistung nach der MySQL -Installation Apr 08, 2025 am 11:36 AM

Die MySQL -Leistungsoptimierung muss von drei Aspekten beginnen: Installationskonfiguration, Indexierung und Abfrageoptimierung, Überwachung und Abstimmung. 1. Nach der Installation müssen Sie die my.cnf -Datei entsprechend der Serverkonfiguration anpassen, z. 2. Erstellen Sie einen geeigneten Index, um übermäßige Indizes zu vermeiden und Abfrageanweisungen zu optimieren, z. B. den Befehl Erklärung zur Analyse des Ausführungsplans; 3. Verwenden Sie das eigene Überwachungstool von MySQL (ShowProcessList, Showstatus), um die Datenbankgesundheit zu überwachen und die Datenbank regelmäßig zu sichern und zu organisieren. Nur durch kontinuierliche Optimierung dieser Schritte kann die Leistung der MySQL -Datenbank verbessert werden.

See all articles