Table des matières¶
0 Introduction¶
- Introduction
- Présentation du cours
- Les biblothèques utilisées
- Environnement de travail (Jupyter)
- Utilisation en dehors du cours
- Jupyter
- Utilisation de Jupyter
- Manipulation des cellules
- Configuration
- IPython
- Complétion et aide
- Shell sous IPython
- Commandes magiques
- Utilisation de Jupyter
1 Python basics¶
- 00 - Premiers calculs
- La calculatrice Python
- L'ordre de priorité des opérateurs
- Les messages d'erreurs
- 01 - Les variables
- Choix du nom
- Affectation - Modification
- Comparaison
- Exercice
- 02 - Les types
- Présentation de types simples - Conversion d'un type vers un autre
- Les chaînes de caractères
- Les listes
- Les dictionnaires
- Les n-uplets (tuples in english)
- 03 - Tests et boucles
- Logique booléenne - Tests
- Les boucles - Boucles avec for - Liste en compréhension - Boucle avec while - Break et Continue
- 04 - Les fonctions
- Signature d'une fonction
- Valeurs par défaut
- Fonctions récursives - Exercice
- 05 - Erreurs et exceptions
- Gérer les erreurs
- raise Exception
- try ... except - Pourquoi try et pas if ?
- Différentes exceptions
- Finalement
- What else?
- Plus loin
- 06 - Premiers programmes
- Un programme, kesako ? - Coding style
- Premier programme (notes d'élèves)
- Deuxième programme (manipulation de données dans un fichier) - Écriture dans un fichier - Exercice
- Bug !
- 07 - Algorithmique et tris
- L'art de l'algorithmique
- Comment trier efficacement ? - Exercice : Tri à bulle - Exercice : Tri rapide (Quicksort in English)
2 Deeper in Python¶
- 01 - Variables en mémoire
- Copie par valeur ou par référence
- Pointeurs et références
- Solutions pour modifier une liste
- 02 - La porté des variables
- Jusqu'où ma variable est visible ?
- nonlocal
- global
- 03 - Formatting
- 3 façons de formater une chaîne
- Formater avec le %
- La méthode f
- Qu'en est-il du formatage avec format ?
- 3 façons de formater une chaîne
- 04 - Generators
- Un for dynamique
- yield pour les cas complexes
- 10 sys - under the hood
- Utilisation de la bibliothèque
sys
- Décrire mon environnement - Informations sur le stockage des données - Autres fonctions
- Utilisation de la bibliothèque
- 11 datetime
- Introduction à DateTime
- Définir une date/heure
- Intervalle de temps
- Epoch time
- Numpy et le temps
- Introduction à DateTime
- 12 - Generators
- Les générateurs - yield
- 12 xml
- Introduction au format XML
- Usage de la bibliothèque
xml
- Plus
- 90 Project
- Un projet Python
- Module
- Packet
- Organiser son projet
- Structure pour un paquet
- Poetry
- Gestion des envionnements
- Création d'un paquet
- Un projet Python
- 91 Tests
- Tests
- Assert
- Tests unitaires
- Doctest
- PyTest
- Tests de haut niveau
- Tester différentes configurations
- Nox + Poetry
- et avec doctest
- Assert
- Tests
- 92 Documentation
- La documentation d'un projet
- Mise en forme
- API
- Sphinx pour l'API
- Mise en forme
- La documentation d'un projet
3 Object Python¶
- 01 Classes and objects
- Classes
- Vocabulaire
- Objets
- Méthode statique
- 02 Inheritance
- Hériter des caractéristiques d'une autre classe
- Héritage multiple
- Ordres des méthodes héritées
- Appel direct d'une méthode d'une classe parente
- 03 Scope
- Portée des attributs d'objets
- Variables privées
- Méthodes privées
- 04 View vs Copy
- Copie d'objets
- La bibliothèque
copy
pour une véritable copie
- 10 Magic methods
- Méthodes magiques - Une liste de méthodes magiques importantes
- 11 Decorators
- Les accesseurs
-
@property
et@setter
-@deleter
- Méthode de classe
- Créer son décorateur
- Plus
- Les accesseurs
-
4 Numpy¶
- np01 Numpy Introduction
- NumPy - An N-dimensional Array manipulations library
- Création d'un tableau - dtype : le choix du type des éléments - Méthodes prédéfinies - Avec des valeurs aléatoires - En redéfinissant sa forme - Mélanger les valeurs - Avec une fonction de son choix
- Opérations de base
- Parcourir un tableau
- Travailler en vectoriel
- np02 Filtres
- Filtrer via les indices
- Les filtres logiques
- Un filtre = une condition logique
-
where
pour gérer les valeurs hors filtre - Mettre à jour un tableau avec un filtre
- np03 Manipulations
- Les axes
- Réorganisation d'un tableau - Réordonner les axes - Changer l'ordre des éléments d'un tableau
- Agrégation - Concaténation - Empilage
- Découpage
- From Python to Numpy
- Pandas aussi
- np04 Xarray
- Étiqueter les dimensions
- Réordonner
- Concaténer
- Empiler des DataArray donne un DataSet
- Ajout de coordonnées
- Interpolation suivant les coordonnées
- Plus
- Étiqueter les dimensions
- np05 Notation Einstein
- Présentation de la notation d'Einstein
- Mise en pratique
- np06 Linalg pour le calcul matriciel
- Linalg (linear algebra)
- Opérations de base
- Extractions
- Opérations sur la matrice
- Linalg (linear algebra)
- np90 petits exercices
- Numpy - Exercices
- Matrice carrée
- Norme d'un vecteur
- Sous-matrice
- Vecteur aléatoire
- Trace
- Matrice de multiples de 3
- Nombre de 9
- Colonne qui a la plus petite moyenne
- ChessSum
- 2 minimums
- Lignes dans l'ordre
- Valeurs uniques
- Tenseur magique
- Plans d'un tenseur
- Numpy - Exercices
- np91 exercice -- Manipulation d_images
- Créer la table des images
- Réorganiser la table
- Passer en niveaux de gris
- Ordonner par contraste
5 Pandas¶
- pd01 -- Pandas indexing
- Structure du
DataFrame
- Sélectionner une partie du tableau
- Le piège de l'indexation (loc et iloc)
- Optimisation (at & iat)
- Les filtres logiques
- Query
- Agir globalement
- Plus
- Structure du
- pd02 -- View vs copy
- Copies et vues en Pandas
copy
pour être sûr d'avoir une copie
- pd03 -- Cleaning a dataframe
- Nettoyer les données
- Retirer les doublons
- Retirer les données inutiles
- Gérer les NaN
- Remplacer les NaN
- Remplacer des valeurs avec
replace
- Remplacer des valeurs avec
- Nettoyer les données
- pd04 Multi-index or N-dimensions DataFrames
- Un tableau à 3 dimensions
- Extraire les données
- Multi-colonnes
- Colonne vers index et inversement
- Changer la structure avec
stack
etunstack
- Opérations directes sur les multi-index
- pd05 -- Group data
- Grouper des données suivant une colonne - Structure d'un groupe
- Grouper suivant plusieurs colonnes
- Grouper suivant un sous-index
- Appliquer différentes opérations
- Grouper tout en conservant la structure initiale - Grouper suivant des dates
- pd06 -- Merging 2 dataframes
- Merge - df1 ∩ df2 sur les lignes - df1 + (df1 ∩ df2) - A ∪ B
- Join
- Concaténation - Jouons avec les axes
- pd07 -- Time dataframe
- Création et utilisation d'un tableau chronologique
- Manipulation - Boucher les trous - Interpolation
- Grouper les données
- Ré-échantillonner avec
resample
- Plus
- pd08 -- Visualizing a DataFrame
- Regarder un tableau
- Dtale
- Graphiques
- Fenêtre glissante
- Regarder un tableau
- pd09 -- Computation
- Caluls avec Pandas
- Modifier les données
- Appliquer une fonction
- Statistiques d'un tableau
- Caluls avec Pandas
- pd10 -- Getting data
- CSV
- Excel
- read_html
- Pandas datareader
- pd90 exercice -- Maires de France
- Charger le fichier dans un DataFrame
- Corriger le tableau
- Naissance et population
- Travail sur des données
- Regrouper les données
- pd91 exercice -- Euronext 2018
- Création de notre super DataFrame
- Extraction de l'action AXA
- Un gros calcul
- Fusion de données
6 Graphics¶
- 10 -- Static graphics with Matplotlib
- Introduction
- Les courbes
- Courbes + barres avec deux échelles - Sauver sa figure en PDF
- Courbe en 3D
- Un tutorial plus approfondi
- Plus
- 11 -- Static graphics with Seaborn
- Présentation des données - Une simple courbe - Distribution des données - Corrélation globale de N champs 2 à 2 - Afficher les valeurs de différentes catégories - Courbe de niveaux
- Statistiques - Moyenne et quartiles
- Plus
- 20 -- Dynamic graphics with Plotly -- Basics
- Figures interactives
- Plotly Express - Plotly avec Pandas - Courbes - Barres et histogrammes - Boîtes à moustaches
- Plotly - Camember
- 21 -- Dynamic graphics with Plotly -- Scatter and bubbles
- Nuages de points - Un nuage de point basique - Des bulles pour une dimension de plus - Une animation avec tout inclus !
- 22 -- Dynamic graphics with Plotly -- More chart types
- Graphiques scientifiques
- Graphiques statistiques
- Graphiques financiers
- Divers
- 23 -- Dynamic graphics with Plotly -- Subplots
- Plusieurs dessins dans une même figure
- Plotly Express - Pour de simples courbes - Notes en marge
- Plotly - Des figures rangées dans une grille - Un placement libre de chaque sous-figure
- 24 -- Dynamic graphics with Plotly -- 3D
- Surface - Définir la scène
- Maillage surfacique en 3D
- Nuage de points et caméra
- Plus
- 30 -- Maps
- Un peu de cartographie - Les données : le prix de l'essence
- Folium
- Objets géographiques - Plotly
- 40 -- A dashboard with Dash -- Layout
- Dash -- Layout
- Installation de Dash sur sa machine
- Premier tableau de bord
- Plus d'information sur la partie HTML
- Dash -- Layout
- 41 -- A dashboard with Dash -- Events
- Les événements dans Dash
- Hello World!
- Interaction clavier
- C'est tout !
- Attention aux variables globales
- Un exemple plus complet
- Les événements dans Dash