2025-04-01 : feuille de route 2025 - avril¶
site web : sdpython.github.io
Apprendre la programmation avec Python
Journée 1 (11/2)¶
L’objectif de cette première journée sera de comprendre la syntaxe du langage python pour construire un programme cachant certaines partie d’un document PDF avec un rectangle noir. D’autres sujets abordés :
Environnement de travail : Windows, Linux, VSCode, notebook, installation de packages
Boucles, tests, fonctions, classes, list, tuple, dict
notion d’algorithmes, tri, recherche dichotomique, plus court chemin dans un graphe, problème du voyageur de commerce
Son assistant en local : 2025-01-31 : local LLM
Ce que savent les modèles LLMs
package, pypi
Exercices de solfège
que vaut
1/2
? et1//2
?retourner une liste (obtenir une liste dans l’autre sens)
calculer le nombre d’occurences des éléments d’une liste (histogrammes)
modifier un élément d’un tuple
retourner un dictionnaire : que fait-on des doublons ?
trouver le minimum dans un tableau
trier un tableau
transformer une liste en un dictionnaire et réciproquement
comment multiplier une chaîne de caractère ?
écrire une boucle
for
et la même avec une bouclewhile
écrire un test
écrire une fonction qui vérifie si une chaîne de caractères est symétrique
écrire une fonction qui retourne une chaîne de caractères sans ses voyelles
fonctions
fonction, paramètre par défaut
arguments positionnels, arguments nommés
écrire une fonction récursive
écrire une fonction qui calcule la suite de Fibonacci ?
écriture
*args
,**kwargs
?comment espionner une autre fonction ?
graphes
comment représenter un graphe de type facebook à l’aide dictionnaires ?
compter le nombre d’amis en commun ?
compter le nombre moyen de connexions ?
comment obtenir la liste des membres du graphes ?
Exercices plus longs
Exercices plus costauds
from pypdf import PdfReader, PdfWriter
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
# ...
Journée 2 (12/2)¶
L’objectif de cette seconde journée sera de manipuler des données avec pandas, numpy pour construire une feuille Excel avec un graphe automatiquement depuis Python.
Exercices numpy
Exercices pandas
Journée 3 (3/3)¶
Partie 1
retour sur la syntaxe du langage python, boucle, test, fonctions et classes,
exercice : Tracer une pyramide bigarrée
pickle
, fichiers pickle (voir Sérialisation)récupération des fichiers préparés pour la formation avec pandas
utilisation de skrub pour avoir un premier aperçu ou pandas-profiling, (voir aussi orange3)
première jointure
Partie 2
gestion des dates
rappel pandas: group by, jointure, inner, outer, left, right, pivot
une fois la base complète obtenue, analyse de nouveau
API REST, exemple avec l’API de la Banque de France et le module requests
Questions sur les données une fois la jointure effectuée
A-t-on associé tous les sinistres ?
Calculer la durée entre la date d’un sinistre et le premier jour couvert par l’assurance. Tracer sa distribution. Que remarque-t-on ?
Peut-on garder tous les sinistres associés ? (il faut regarder la période couverte)
On calcule le nombre de sinistres par individu, puis on fait la moyenne par année. Est-ce que la proportion paraît constante ?
On fait de même pour différentes catégories de la base ?
Comment illustrer rapidement cela avec un graphique ?
Comment faire des statistiques sur une année ? Comment faire avec des assurances à cheval sur deux années ?
Journée 4 (4/3)¶
Partie 1
retour sur les graphes matplotlib, seaborn, plotly, skrub
corrélations, pairplots
cubes de données avec pandas, passer un indice à droite (colonnes), à gauche (index), Cube de données et pandas
reprise de quelques traitement de la veille en SQL
pandas.read_sql()
,pandas.DataFrame.to_sql()
gestion des doublons avec
pandas.DataFrame.duplicated()
identification des valeurs aberrantes, voir
pandas.DataFrame.quantile()
On reprend le code écrit jusqu’à présent. On veut écrire une fonction qui effectue la jointure et extrait toutes les lignes aberrantes ou manquantes.
Ecrire un test unitaire qui valide cette fonction. Peut-on utiliser les données qu’on manipule depuis le début de la séance ?
Partie 2
notion d’itérateur en python
application à
pandas.read_csv()
version itérateur pour manipuler des gros dataframesutilisation de sqlite3 (extension sqlite3 vscode)
découpage d’une base en deux, apprentissage, respecter le temps et les identifiants
calcul du prix d’un contrat d’assurance pour un an en fonction de variables choisies en fonction des données connues
Obtient-on le même prix sur les deux bases ?
Ecrire le test unitaire validant la fonction qui calcule le prix.
Notion de package.
Journée 5 (5/3)¶
introduction de scikit-learn
valeurs manquantes, remplacement simple (moyenne), corrélations (
sklearn.impute.KNNImputer
), prédictions (sklearn.impute.IterativeImputer
), (voir sklearn.impute)premières impressions
exemples classique pour traiter, enrichir un jeux de données : skrub tutorial, voir aussi AggJoiner on a credit fraud dataset
sklearn.pipeline.Pipeline
,sklearn.compose.ColumnTransformer
,sklearn.pipeline.FeatureUnion
Dates, Catégories : category_encoders, skrub, Prétraitement des catégories
Son : librosa, voir Prétraitement du son
Image : scikit-image, voir Prétraitement d’une image
Texte : Prétraitement du texte