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

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 ?
  • 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
  • 11 datetime
    • Introduction à DateTime
      • Définir une date/heure
      • Intervalle de temps
    • Epoch time
    • Numpy et le temps
  • 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
  • 91 Tests
    • Tests
      • Assert
        • Tests unitaires
      • Doctest
      • PyTest
        • Tests de haut niveau
        • Tester différentes configurations
      • Nox + Poetry
      • et avec doctest
  • 92 Documentation
    • La documentation d'un projet
      • Mise en forme
        • API
      • Sphinx pour l'API

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

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
  • 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
  • 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
  • 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
  • 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
  • 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 et unstack
    • 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
  • pd09 -- Computation
    • Caluls avec Pandas
      • Modifier les données
      • Appliquer une fonction
        • Statistiques d'un tableau
  • 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
  • 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