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):
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:
#🎜 🎜#
Durch 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:
Nach 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:
Plotten Sie dieses Diagramm, um zu zeigen, wie viel Google jedes Jahr sammelt. Wie viele Wörter :
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:
Dies gibt 1,3 Milliarden Datenzeilen zurück (nur 3,7 % der Daten vor 1800).
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:
Zeichnen Sie das Ergebnis von word_counts:
#🎜🎜 ## 🎜🎜#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:
Im Vergleich zu Google (ohne jegliche Basisanpassung):
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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. 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

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.

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.

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

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.
