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.
Aufbau der Python3 + venv + VSCode + macOS-Entwicklungsumgebung --Qiita
Jupyter-Notizbuch-Zeichnungsbibliotheksvergleich-Qiita
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
https://github.com/bokeh/bokeh/blob/master/examples/howto/notebook_comms/Jupyter%20Interactors.ipynb
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=numpy"
]
Fehler ohne Mitglied in Pylint-Qiita
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
Sollte "df = df.append (df2)" sein
python - Appending to an empty data frame in Pandas? - Stack Overflow
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
Zusammenfassung des Bereichs der Python-Klassenmitglieder --Qiita
Python Pandas Dateniteration und Funktionsanwendung, Pipe --StatsFragments
List index (enumerate) - Lernseite von der Einführung bis zur Anwendung von Python
Pandas: Converting to numeric, creating NaNs when necessary
Einfache Python-Paketverwaltung mit Pip-bezogenen Tools-Qiita
Anhängen, wenn Sie einfach vertikal verbinden möchten, verbinden, wenn Sie horizontal verbinden möchten
Python Pandas Diagramm Datenverkettung / Verkettungsverarbeitung --StatsFragments
pd.set_option("display.max_rows", 10)
Verhindern Sie, dass Pandas Anzeigeprobleme und Lösungshinweise bei der Arbeit weglassen.
[[Python] Sortieren # Mehrdimensionale Listensortierung](http://qiita.com/fantm21/items/6df776d99356ef6d14d4 # Mehrdimensionale Listensortierung)
Zusammenfassung der Python-Sortierung (Liste, Wörterbuchtyp, Serie, Datenrahmen) - Qiita
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 zum Konvertieren von Jupyter py in ipynb mit VS-Code - Qiita erstellt
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
Sie können Zeitreihendaten auch alle 1 Sekunde oder jeden Tag gruppieren.
Sie können reguläre Ausdrücke wie ".replace (". * "," +1 ", regex = True)" verwenden
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)
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
Verwendung von Map / Filter in Python3 --- Eine Geschichte, die irgendwohin zu gehen scheint
Beherrschen der Python-Pandas-Plotfunktion-StatsFragments
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
max(dic, key=lambda i: dic[i])
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
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
Es ist einfach, weil Sie es im Bereich angemessen übergeben können
HoloViews sind möglicherweise der Standard für Python-Visualisierungstools Grundlegendes Diagramm von HoloViews in einem Liner
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.
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.
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 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.
Drei Tipps zur Aufrechterhaltung der Leistung von Python-Pandas
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
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
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.
Zusammenfassend
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
[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
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
Zusammenfassung zum Importieren von Dateien in Python 3
Ist es am besten, "__init __. Py" zu erstellen und zu lesen?
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