Persönliche Tipps, wenn Sie verschiedene Dinge mit Python 3 tun

Überblick

Notieren Sie sich die Ergebnisse, die Sie beim maschinellen Lernen oder beim Data Mining mit Python 3 mit VS Code erzielt haben.

Ich weiß, dass es schwer zu lesen ist.

Von Zeit zu Zeit aktualisiert.

Persönliche Best Practice zum Erstellen einer Entwicklungsumgebung, wenn nur Python3 vorhanden ist

Aufbau der Python3 + venv + VSCode + macOS-Entwicklungsumgebung --Qiita

Vergleich der Zeichnungsbibliothek

Jupyter-Notizbuch-Zeichnungsbibliotheksvergleich-Qiita

Interaktive Visualisierung

Verwenden Sie ipywidgets und Bokeh für die interaktive Visualisierung-Qiita

Wenn ich versuche, ipywidgets mit der [jupyter-Erweiterung] von VSCode (https://marketplace.visualstudio.com/items?itemName=donjayamanne.jupyter) zu erstellen, kann ich sie nicht verwenden, da ich das Skript nicht lesen kann. support for ipython/jupyter widgets · Issue #21 · DonJayamanne/vscodeJupyter Lass es uns ruhig mit Jupyter vom Browser machen

Stichprobe

https://github.com/bokeh/bokeh/blob/master/examples/howto/notebook_comms/Jupyter%20Interactors.ipynb

Wenn bei Verwendung von numpy eine Fehlermeldung angezeigt wird, dass pylint kein ~ hat, gehen Sie zu VSCode settings.json

    "python.linting.pylintArgs": [
        "--extension-pkg-whitelist=numpy"
    ]

Fehler ohne Mitglied in Pylint-Qiita

Der Grund, warum der Fehler "ValueError: n_samples = 1"> = n_clusters = 3 sein sollte, erscheint bei k-Bedeutung

Da die erforderlichen Daten zweidimensional sein müssen, werden sie in diesem Blog angehängt und sind ineffizient. Daher empfiehlt es sich, beispielsweise "sample_data.iloc [:, 0: 1]" auszuführen.

Dies kann die erste Spalte extrahieren, die mit dem Setzen von sample_data.iloc [:, 0] identisch ist, aber es scheint, dass sie durch Setzen von 0: 1 und dem obigen Fehler in zwei Dimensionen dargestellt wird Wird nicht herauskommen

Tag 6 bis zum Verständnis des Blogs des maschinellen Lernens / Clustering-IT-Kapitäns

Selbst wenn "df.append (df2)" mit "df = pd.DataFrame ()" ausgeführt wird, wird es nicht zu df hinzugefügt.

Sollte "df = df.append (df2)" sein

python - Appending to an empty data frame in Pandas? - Stack Overflow

Wenn Sie den Typnamen nach: (Typhinweise) schreiben, wird IntelliSense ausgeführt.

Typhinweise scheinen jedoch gleichbedeutend mit einem einfachen Kommentar zu sein. Wenn Sie also ein Objekt eines Typs übergeben, der nicht übereinstimmt, wird linter nicht wütend und wird erst dann typgeprüft, wenn es ausgeführt wird.

Typisierte Welt beginnend mit Python-Qiita

Umfang der Klassenmitglieder

Zusammenfassung des Bereichs der Python-Klassenmitglieder --Qiita

Wenn Sie Pandas-Daten auf nette Weise abrufen möchten

Python Pandas Dateniteration und Funktionsanwendung, Pipe --StatsFragments

Wenn Sie einen Index für jede Liste wünschen

List index (enumerate) - Lernseite von der Einführung bis zur Anwendung von Python

Wenn Sie den Typ des Inhalts des Datenrahmens konvertieren möchten

Pandas: Converting to numeric, creating NaNs when necessary

Gute Kombination aus Pip-Compile und Pip-Sync

Einfache Python-Paketverwaltung mit Pip-bezogenen Tools-Qiita

Abbildung beim Verketten und Kombinieren von DataFrames

Anhängen, wenn Sie einfach vertikal verbinden möchten, verbinden, wenn Sie horizontal verbinden möchten

Python Pandas Diagramm Datenverkettung / Verkettungsverarbeitung --StatsFragments

Wenn die Menge beim Drucken des Pandas-Datenrahmens groß ist, wird sie weggelassen. Wenn Sie sie jedoch willkürlich einstellen, können Sie alle anzeigen

pd.set_option("display.max_rows", 10)

Verhindern Sie, dass Pandas Anzeigeprobleme und Lösungshinweise bei der Arbeit weglassen.

Setzen Sie beim Sortieren einer mehrdimensionalen Liste den Sortierschlüssel auf Lambda

[[Python] Sortieren # Mehrdimensionale Listensortierung](http://qiita.com/fantm21/items/6df776d99356ef6d14d4 # Mehrdimensionale Listensortierung)

So sortieren Sie nach Datenstruktur

Zusammenfassung der Python-Sortierung (Liste, Wörterbuchtyp, Serie, Datenrahmen) - Qiita

Wenn Sie isort verwenden, wird der Import gut reformiert.

code-python-isort - Visual Studio Marketplace

%sql select * from hoge Eine Jupyter-Erweiterung, die einfach durch Schreiben in einen DataFrame oder etwas anderes verschoben werden kann ipython-sql

Ich habe ein Tool erstellt, um Jupyter py mit VS Code --Qiita in ipynb zu konvertieren

Ich habe ein Tool zum Konvertieren von Jupyter py in ipynb mit VS-Code - Qiita erstellt

Der erstere Anhang wird als Anhang mit IntelliSense-Funktion ausgegeben, der letztere jedoch nicht

tttt = pd.DataFrame()
tttt.append(None)
tttt = df[["label"]]
tttt.append(None)

Dies liegt daran, dass Sie den Typ des Arguments nicht kennen. Wenn Sie also "assert is instance" oder etwas verwenden, um den Typ nach "df [[" label "]]" anzugeben, wird append in IntelliSense angezeigt.

Wie schreibe ich Python, damit IntelliSense funktioniert - Jobuji Hoshi Tsushin

Zackenbarsch sehr praktisch

Leicht fortgeschrittene Gruppierung / Aggregation mit Python Pandas Accessor / Grouper-StatsFragments

Sie können Zeitreihendaten auch alle 1 Sekunde oder jeden Tag gruppieren.

Sie können die Zielzeichenfolge nur durch ".replace (" hoge "," toHoge ")" ersetzen.

Sie können reguläre Ausdrücke wie ".replace (". * "," +1 ", regex = True)" verwenden

Ein Super-Anfänger im maschinellen Lernen hat einen Artikel gelesen und zusammengefasst, von dem jeder sagt, er sei gut - Qiita

Ein Super-Anfänger im maschinellen Lernen hat einen Artikel gelesen und zusammengefasst, von dem jeder sagt, dass er gut ist - Qiita

Wenn Sie eine Verwirrungsmatrix erstellen möchten, können Sie dies sofort so tun

from sklearn.metrics import confusion_matrix

test_label_lb = []  #Richtiges Antwortetikett
p_label = []  #Geschätztes Etikett

cmx_data = confusion_matrix(y_true=test_label_lb, y_pred=p_label)
labels = ["A", "B", "C"]
df_cmx = pd.DataFrame(cmx_data, index=labels, columns=labels)

Häufige Fehler, die Entwickler bei der Verwendung von Python für die Big-Data-Analyse machen|Programmierung| POSTD

Sie können eine Karte mit Jupyter unabhängig von der U-Bahn anzeigen

Folium

import folium
m = folium.Map(location=[33.763, -84.392], zoom_start=17)
folium.Marker(
    location=[33.763006, -84.392912],
    popup='World of Coca-Cola'
).add_to(m)
m

Ist es klüger, Lambda zu verwenden?

Verwendung von Map / Filter in Python3 --- Eine Geschichte, die irgendwohin zu gehen scheint

Schönes Handlungsbeispiel

Beherrschen der Python-Pandas-Plotfunktion-StatsFragments

Da Iterator von Map und Filter zurückgegeben wird

Iterator rückt vor, wenn der Inhalt mit list () usw. entfernt wird.

num_map = map(lambda n: n + 1, np.random.random(1000))
print(list(num_map)) #Hier ist der Wert

num_filter = filter(lambda n: n > 0.5, np.random.random(1000))
print(list(num_filter)) #Hier ist der Wert

print(list(num_map)) #Nicht mehr hier
print(list(num_filter)) #Nicht mehr hier

Wenn Sie den Schlüssel des Diktats finden möchten, dessen Wert max ist, können Sie in eine Zeile gehen

max(dic, key=lambda i: dic[i])

Path lib ist einfach, den Pfad zu bedienen

Für Python 3.4 oder höher sollten Sie os.path wegwerfen und pathlib verwenden

from pathlib import Path
LOG_DIR = "/Users/your_name/log"

Path(LOG_DIR).joinpath("log.json") #Oder Pfad(LOG_DIR) / "log.json"
# PosixPath('/Users/your_name/log/log.json')Wird

Path(LOG_DIR).joinpath("log.json").exists() 
# False

Multi-Prozess mit Multi-Verarbeitung

So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch

Es ist einfach, weil Sie es im Bereich angemessen übergeben können

Wrapper für verschiedene Grafikzeichnungswerkzeuge HoloViews

HoloViews sind möglicherweise der Standard für Python-Visualisierungstools Grundlegendes Diagramm von HoloViews in einem Liner

Fortschrittsbalken anzeigen

Fortschrittsbalken in Python anzeigen (tqdm)

Wenn Sie ein iterierbares Objekt übergeben, können Sie sehen, wie viele iteriert werden. Es schreitet pro Sekunde voran, daher ist es eine gute Anleitung.

Beim Speichern mit matplotlib können Beschriftungen hervorstehen

bbox_inches = "eng" oder so ähnlich

Wenn Sie die Schrift groß machen oder ein Quer- oder Hochformatdiagramm erstellen, kann die Beschriftung mit savefig hervorstehen. Wenn Sie also ".savefig (" test.png ", bbox_inches =" tight ")" verwenden, wird sie wunderschön angezeigt.

Ich möchte die Ausführungszeit messen

Jupyter Notebook>% Zeitbereich (100)> Messung der Verarbeitungszeit> %% Zeit> Messung der Verarbeitungszeit mehrerer Sätze Geschichte der Messung der Codeausführungszeit mit IPython

Mit Jupyter können Sie die Ausführungszeit von func mit% time func () ermitteln, aber es ist ziemlich verschwommen Wenn Sie "% timeit func ()" setzen, wird es mehrmals ausgeführt und gemessen.

VSCodes jupyter-Erweiterung erkennt "%% timeit" nicht, so dass es für VSCodes Jupyter unmöglich erscheint, mehrere Zeilen auszuwerten ( Nun, es sollte eine Funktion sein.

Gibt es NaN in diesem DataFrame?

Gibt es NaN im Pandas DataFrame? df.isnull (). values.any () ist leicht zu merken und schnell, also gut, aber es hängt vom Typ ab, also probieren Sie es aus.

Tipps für die Hochgeschwindigkeitsverarbeitung mit Pandas

Drei Tipps zur Aufrechterhaltung der Leistung von Python-Pandas

Autocomplete langsames Problem mit pythonVSCode

Slow auto complete speed for custom modules python #903 Slow autocompletion/formatting #581

Wenn Sie VSCode settings.json Folgendes hinzufügen, wird es vorinstalliert.

"python.autoComplete.preloadModules": [
    "pandas",
    "numpy",
    "matplotlib"
]

Daher habe ich das Gefühl, dass Vorschläge wie "pandas.DataFrame ()" schneller sind, aber ich denke, dass sie sich nicht ändern, wenn eine Typinferenz erforderlich ist. Es wird schneller sein, wenn Sie es mit "assert is instance" angeben, aber Sie können es nicht einzeln tun ...

df = func_something()
df.sum() #Die Summe kommt hier langsam heraus

assert isinstance(df, pd.DataFrame)
df.sum() #Hier kommt die Summe bald heraus

Zombie-Massenausbruchsproblem bei der Verarbeitung mehrerer Prozesse mit Pool mit Jupyter

Wenn Sie einen Zombie erstellen, wenn Sie Multiprocessing in IPython verwenden

#p = Pool()
p.terminate()

Explizit töten oder

with Pool() as p:
    results = p.map(func, range(0, 100))

Benutzen mit

Pylint ärgert sich über E0602, wenn er auf eine Lambda-Variable mit Doppelfilter oder Karte verweist

Wenn Sie in list_ab eine Übereinstimmung finden, die mit dem Präfix in list_prefix übereinstimmt (obwohl dieses Beispiel nicht sehr gut ist ...)

list_ab = ["aa_a", "aa_b", "ab_a", "ab_b", "ba_a", "ba_b"]
list_prefix = ["aa", "ab"]
print(list(
    filter(lambda a: True in map(lambda b: a.startswith(b), list_prefix),
            list_ab)
))  # ['aa_a', 'aa_b', 'ab_a', 'ab_b']

In diesem Fall wird a wütend auf E0602 (aber pylint wird nur wütend, sodass es ausgeführt werden kann und das Ergebnis wie erwartet ist).

from itertools import compress
print(list(
    compress(list_ab,
                [True in [a.startswith(b) for b in list_prefix] for a in list_ab]
                )
))  # ['aa_a', 'aa_b', 'ab_a', 'ab_b']

Es ist gut, mit komprimieren in Listeneinschlussnotation zu schreiben.

[Python] Was tun, wenn Python nicht mehr genügend Speicher hat?

Zusammenfassend

Verwenden Sie weiterhin Joblib anstelle von Gurke

Der Effekt ist schwach, da die Komprimierung in Bezug auf Daten nicht so gut funktioniert, aber immer kleiner wird. Da es komprimiert ist, ist die Exportgeschwindigkeit natürlich langsamer als Picke

Wenn compless = 0 ist, ist es nicht komprimiert, sodass es ungefähr die gleiche Größe hat wie beim Löschen mit pickle, aber joblib ist einfacher, da nicht mit open in dump and load geschrieben werden muss.

import os
import pickle

import joblib
import numpy as np
import pandas as pd

dump_data = np.random.randn(10000000)

with open("dump_data.pkl", "wb") as f:
    pickle.dump(dump_data, f)

print(os.path.getsize("dump_data.pkl") / 1024 / 1024, "MB")
# 76.29409885406494 MB

joblib.dump(dump_data, "dump_data", compress=3)
print(os.path.getsize("dump_data") / 1024 / 1024, "MB")
# 73.5648946762085 MB

# joblib.load("dump_data") #Lesen

Seaborn Zeichenbeispiele

[Erläuterung aller Seaborn-Methoden (Teil 1: Diagrammliste)](http://own-search-and-study.xyz/2017/05/02/ Erläuterung aller Seaborn-Methoden (Teil 1: Diagrammliste) / ) Datenvisualisierung mit Python-Draw eine coole Heatmap Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 1

Wenn beim Pip-Kompilieren ein Fehler bei egg_info auftritt

Ich habe das Gefühl, dass es häufig im Zusammenhang mit Matplotlib und Seaborn vorkommt, aber es gibt Fälle, in denen das Pip-Kompilieren aufgrund eines Fehlers wiegg_info nicht durchgeführt werden kann. In diesem Fall denke ich, dass pip-compile --rebuild funktionieren wird. Referenz: https://github.com/jazzband/pip-tools/issues/586

Wenn Sie aus einem anderen Verzeichnis importieren möchten

Zusammenfassung zum Importieren von Dateien in Python 3

Ist es am besten, "__init __. Py" zu erstellen und zu lesen?

Plotly aus der Jupyter-Erweiterung von Visual Studio Code verwenden

Sehr angenehm

Wenn "HTML (html_code)" und "init_notebook_mode ()" gleichzeitig in derselben Zelle ausgeführt werden, werden sie nicht angezeigt. Wenn Sie also zuerst nur "HTML (html_code)" und dann "init_notebook_mode ()" ausführen, funktioniert dies (sobald es angezeigt werden kann, können Sie es gleichzeitig in derselben Zelle ausführen). Weil die JS-Last asynchron ist?

Recommended Posts

Persönliche Tipps, wenn Sie verschiedene Dinge mit Python 3 tun
Tipps zum Programmieren von Wettbewerben mit Python2
Probieren Sie verschiedene Dinge mit PhantomJS aus
[Tipps] Behandle Athena mit Python
Bearbeiten Sie verschiedene Datenbanken mit Python
Fehler beim Spielen mit Python
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
Wenn matplotlib nicht mit python2.7 funktioniert
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
[Python] Format, wenn to_csv mit Pandas
Tipps, die Sie beim Programmieren in Python2 kennen sollten (nützliche Bibliothek)
Tipps zum Programmieren von Wettbewerben mit Python2 (Andere Sprachspezifikationen)
WEB-Scraping mit Python (für persönliche Notizen)
Snippet für die Vollbit-Suche mit Python
Hinweise beim Erstellen einer Umgebung mit Python
Tipps zum Umgang mit Binärdateien in Python
Zu beachtende Punkte bei der Lösung von DP-Problemen mit Python
Hinweise zur japanischen OCR mit Python
Persönliche Best Practices bei der Feinabstimmung mit Chainer
Tipps (Eingabe / Ausgabe), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Persönliche Tipps zu Python (Zeichenfolgen, Protokolle)
[Persönlicher Hinweis] Scraping von Webseiten in Python3
Tipps zur Verwendung von Python + Caffe mit TSUBAME
1. Mit Python 1-3 gelernte Statistiken. Berechnung verschiedener Statistiken (Statistiken)
Tipps (Kontrollstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Python-Tipps
Python-Tipps
Tipps (Datenstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete
[Tipps] Leicht lesbares Schreiben beim Verbinden von Funktionen in Python
Fehler beim Installieren eines Moduls mit Python pip
[Persönliches Memo] julia - Verwenden Sie die Python-Bibliothek mit julia unter Verwendung von PyCall
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Empfohlene Umgebung und Verwendung bei der Entwicklung mit Python
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
[Verschiedene Bildanalysen mit Plotly] Dynamische Visualisierung mit Plotly [Python, Bild]
Vorsichtsmaßnahmen beim Umgang mit Kontrollstrukturen in Python 2.6
~ Tipps für Python-Anfänger mit Liebe von Pythonista ① ~
1. Mit Python 1-2 gelernte Statistiken. Berechnung verschiedener Statistiken (Numpy)
Untersuchung beim Import kann nicht mit Python durchgeführt werden
Verwenden Sie verschiedene Rabbimq-Funktionen mit Python Pika
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
Zeichenkodierung beim Umgang mit Dateien in Python 3
[Python] [vscode] Wenn Sie sich über Space-Tab-Mix ärgern
Formeln, die unter Mathematik mit Python ausführen angezeigt werden
~ Tipps für Python-Anfänger mit Liebe von Pythonista ② ~
[Webentwicklung mit Python] Vorsichtsmaßnahmen beim Speichern von Cookies
Materialien zum Lesen, wenn Sie mit Python beginnen
Was verwenden Sie beim Testen mit Python?
[Python] Passen Sie Colormap an, wenn Sie Diagramme mit matplotlib zeichnen
Python Conda Tipps
Statistik mit Python
Djangos persönliche Tipps
Python mit Go
Tipps zum Python-Debuggen
Twilio mit Python