J'écrirai les connaissances que j'ai acquises lors de l'apprentissage automatique et de l'exploration de données avec VS Code en Python 3.
Je sais que c'est difficile à lire.
Mis à jour de temps en temps.
Construction de l'environnement de développement Python3 + venv + VSCode + macOS - Qiita
Comparaison de la bibliothèque de dessins Jupyter-notebook-Qiita
Utilisez ipywidgets et Bokeh pour la visualisation interactive-Qiita
Quand j'essaye de faire des ipywidgets avec [l'extension jupyter] de VSCode (https://marketplace.visualstudio.com/items?itemName=donjayamanne.jupyter), je ne peux pas l'utiliser parce que je ne peux pas lire autour du script. support for ipython/jupyter widgets · Issue #21 · DonJayamanne/vscodeJupyter Faisons-le tranquillement avec Jupyter du navigateur
https://github.com/bokeh/bokeh/blob/master/examples/howto/notebook_comms/Jupyter%20Interactors.ipynb
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=numpy"
]
Erreur d'absence de membre dans Pylint-Qiita
ValueError: n_samples = 1 should be> = n_clusters = 3
apparaît lorsque k-means est exécuté.Puisque les données requises doivent être bidimensionnelles, elles s'ajoutent et sont inefficaces dans ce blog, il est donc bon de faire quelque chose comme sample_data.iloc [:, 0: 1]
.
Cela peut extraire la première colonne, qui est la même que lorsque sample_data.iloc [:, 0] est défini, mais il semble qu'elle sera représentée en deux dimensions en définissant 0: 1 et l'erreur ci-dessus Ne sortira pas
Jour 6 jusqu'à comprendre le blog du capitaine de l'apprentissage automatique / clustering-IT
df.append (df2)
est fait avec df = pd.DataFrame ()
, il n'est pas ajouté à df.Doit être df = df.append (df2)
python - Appending to an empty data frame in Pandas? - Stack Overflow
Cependant, Type Hints semble être synonyme de simple commentaire, donc si vous passez un objet d'un type qui ne correspond pas, linter ne se mettra pas en colère et ne sera pas vérifié de type tant qu'il ne sera pas exécuté.
Monde typé commençant par Python-Qiita
Résumé de la portée des membres de la classe Python --Qiita
Application d'itération et de fonction de données Python pandas, pipe --StatsFragments
Liste index (énumération) - Site d'apprentissage de l'introduction à l'application de Python
Pandas: Converting to numeric, creating NaNs when necessary
Gestion facile des paquets Python avec les outils liés à pip - Qiita
Ajouter lorsque vous souhaitez simplement rejoindre verticalement, rejoindre lorsque vous souhaitez rejoindre horizontalement
Traitement de concaténation / jointure de données de diagramme pandas Python --StatsFragments
pd.set_option("display.max_rows", 10)
Empêchez les pandas d'omettre les problèmes d'affichage et les notes de solution au travail.
[[Python] Trier # Tri de liste multidimensionnel](http://qiita.com/fantm21/items/6df776d99356ef6d14d4 # Tri de liste multidimensionnel)
Résumé du tri Python (liste, type de dictionnaire, série, DataFrame) --Qiita
code-python-isort - Visual Studio Marketplace
%sql select * from hoge Une extension jupyter qui peut être poussée dans un DataFrame ou quelque chose simplement en écrivant ipython-sql
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code --Qiita
tttt = pd.DataFrame()
tttt.append(None)
tttt = df[["label"]]
tttt.append(None)
C'est parce que vous ne connaissez pas le type de l'argument, donc si vous spécifiez le type après df [[“ label ”]]
en utilisant ʻassert is instance` ou quelque chose, append apparaîtra dans IntelliSense.
Comment écrire Python pour faire fonctionner IntelliSense --Ajobuji Hoshi Tsushin
Regroupement / agrégation légèrement avancé avec l'accesseur pandas Python / Grouper-StatsFragments
Vous pouvez également regrouper les données de séries chronologiques toutes les 1 seconde ou tous les jours.
.replace (" hoge "," toHoge ")
,Vous pouvez utiliser des expressions régulières comme .replace (". * "," +1 ", regex = True)
from sklearn.metrics import confusion_matrix
test_label_lb = [] #Étiquette de réponse correcte
p_label = [] #Étiquette estimée
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
Comment utiliser map / filter en Python3 --- Une histoire qui semble aller quelque part
Maîtriser la fonction de tracé des pandas Python-StatsFragments
L'itérateur avance si le contenu est retiré avec list () etc.
num_map = map(lambda n: n + 1, np.random.random(1000))
print(list(num_map)) #Voici la valeur
num_filter = filter(lambda n: n > 0.5, np.random.random(1000))
print(list(num_filter)) #Voici la valeur
print(list(num_map)) #N'est plus là
print(list(num_filter)) #N'est plus là
max(dic, key=lambda i: dic[i])
Pour Python 3.4 ou version ultérieure, vous devez supprimer os.path et utiliser pathlib
from pathlib import Path
LOG_DIR = "/Users/your_name/log"
Path(LOG_DIR).joinpath("log.json") #Ou chemin(LOG_DIR) / "log.json"
# PosixPath('/Users/your_name/log/log.json')Devient
Path(LOG_DIR).joinpath("log.json").exists()
# False
Comment effectuer un traitement parallèle multicœur avec python
C'est facile car vous pouvez le passer convenablement dans la gamme
HoloViews peut être la norme pour les outils de visualisation Python Graphique de base des HoloViews dans une seule ligne
Afficher la barre de progression en Python (tqdm)
Si vous passez un objet itérable, vous pouvez voir combien d'itérations? Il progresse par seconde, c'est donc un bon guide.
bbox_inches = "tight" ou quelque chose du genre
Si vous agrandissez la police ou créez un graphique de paysage ou de portrait, l'étiquette peut ressortir avec savefig, donc si vous faites .savefig (" test.png ", bbox_inches =" tight ")
, elle ressortira magnifiquement.
Jupyter Notebook>% timeit range (100)> Mesure du temps de traitement> %% timeit> Mesure du temps de traitement de plusieurs phrases Histoire de mesurer le temps d'exécution du code avec IPython
Avec Jupyter, vous pouvez obtenir le temps d'exécution de func avec % time func ()
, mais c'est plutôt flou
Si vous définissez % timeit func ()
, il sera exécuté plusieurs fois et mesuré.
[Extension jupyter] de VSCode (https://marketplace.visualstudio.com/items?itemName=donjayamanne.jupyter) ne reconnaît pas %% timeit
, il semble donc impossible pour Jupyter de VSCode d'évaluer plusieurs lignes ( Eh bien, ça devrait être une fonction)
Y a-t-il NaN dans le DataFrame pandas?
df.isnull (). values.any ()
est facile à retenir et rapide, donc c'est bien, mais cela dépend du type, alors essayez-le.
Trois conseils pour maintenir les performances des pandas Python
Slow auto complete speed for custom modules python #903 Slow autocompletion/formatting #581
Si vous ajoutez ce qui suit à VSCode settings.json, il sera préchargé.
"python.autoComplete.preloadModules": [
"pandas",
"numpy",
"matplotlib"
]
En conséquence, je pense que les suggestions telles que pandas.DataFrame ()
sont plus rapides, mais je pense que cela ne change pas lorsque l'inférence de type est requise.
Ce sera plus rapide si vous le spécifiez avec ʻassert is instance`, mais vous ne pouvez pas le faire un par un ...
df = func_something()
df.sum() #Sum sort lentement ici
assert isinstance(df, pd.DataFrame)
df.sum() #Ici la somme sort bientôt
Lors de la création d'un zombie lors de l'utilisation du multitraitement dans IPython
#p = Pool()
p.terminate()
Tuer ou
with Pool() as p:
results = p.map(func, range(0, 100))
Utiliser avec
Si vous trouvez une correspondance dans list_ab
qui correspond au préfixe dans list_prefix
(bien que cet exemple ne soit pas très bon ...)
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']
Dans ce cas, ʻa` se fâche contre E0602 (mais comme pylint se met en colère, il peut être exécuté et le résultat est comme prévu).
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']
Il est bon d'écrire en notation d'inclusion de liste en utilisant compress.
En résumé
L'effet est faible car la compression ne fonctionne pas tellement en termes de données, mais elle diminue. Puisqu'il est compressé, la vitesse d'exportation est naturellement plus lente que picke
Lorsque compless = 0, il est décompressé, donc il aura à peu près la même taille que lorsqu'il a été sorti avec pickle, mais joblib est plus facile car il n'est pas nécessaire d'écrire avec open in dump and load.
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") #Lis
[Explication de toutes les méthodes Seaborn (Partie 1: Liste des graphiques)](http://own-search-and-study.xyz/2017/05/02/ Explication de toutes les méthodes Seaborn (Partie 1: Liste des graphiques) / ) Visualisation des données avec Python - Dessinez une carte de chaleur fraîche Un superbe dessin graphique avec python -seaborn améliore l'analyse et la visualisation des données, partie 1
Je pense que cela arrive souvent en relation avec matplotlib et seaborn, mais il y a des cas où pip-compile ne peut pas être effectué en raison d'une erreur telle que egg_info.
Dans ce cas, je pense que pip-compile --rebuild
fonctionnera.
Référence: https://github.com/jazzband/pip-tools/issues/586
Résumé de l'importation de fichiers en Python 3
Est-il préférable de créer et de lire «__init __. Py»?
Très pratique
Lorsque HTML (html_code)
et ʻinit_notebook_mode () ʻ sont exécutés en même temps dans la même cellule, ils ne sont pas affichés.
Donc, si vous exécutez d'abord seulement HTML (html_code)
puis exécutez ʻinit_notebook_mode () `, cela fonctionnera (une fois qu'il peut être affiché, il est correct de l'exécuter sur la même cellule à la fois)
Parce que la charge JS est asynchrone?