Formations au coeur des technologies

Essayer, tester, échanger les bonnes pratiques, partager les retours d'expériences, ...
toutes nos formations sont disponibles à distance (classes virtuelles) et en centre de formation (présentiel), au choix.
Vous pouvez même changer de modalité en cours de formation, si vous avez des contraintes : par exemple, commencer en présentiel et continuer les jours suivants à distance.
Les outils pédagogiques et l'infrastructure de travaux pratiques mis à disposition sont accessibles depuis nos locaux, ou depuis votre entreprise ou votre lieu de télétravail, à volonté
N'hésitez pas à tester nos formations et nos serious games !

Formation : Python avancé : programmation scientifique

Durée4 jours
Code coursLY002
Inscription

Public:

Développeurs en programmation scientifique.

Objectifs:

Maitriser les bibliothèques de programmation scientifique en Python
Explorer et analyser des donnéesProgrammer des algorithmes et calculer de manière efficace en Python

Connaissances préalables nécessaires:

Avoir suivi la formation "Python Initiation" ou avoir un niveau équivalent et avoir une pratique régulière du langage Python

Déroulé pédagogique


Python avancé
Durée : 7h30
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Rappels concepts fondamentaux Python (architecture objet du langage, type de données, structure de données)
Bonnes pratiques / Design de code : PEP8, structuration script et modules, POO, notion de packaging
Atelier : Ecriture d'un code de base et transformation en paquet.


Mise en oeuvre de __init__, PYTHONPATH, site-packages, pyvenv, .pyc, ...
Fonctionnalités avancées de Python : gestionnaire de contexte, liste par compréhension, itérateur, générateur
Atelier : Rappels sur les types d'écritures en python : transformation d'un for en compréhension, utilisation des générateurs, suppression des for, ...


Evaluation de performances : outil de profilage (timing et mémoire)
Atelier : présentation de quelques outils : timeit, profiler, memory_profiler, module pstats,


Limite des performances du langage Python natif
Atelier : analyse de performances avec le mode profiling de pycharm


Manipulation de tableaux et opérations mathématiques avec NumPy
Durée : 4h30
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Structure de donnée : les numpy array (différences avec les listes python, définition, type de données, allocation mémoire, shape, reshape)
Création de tableau (random, à partir de données existantes, ...)
Accès aux éléments du tableau :indexation simple, slicing et striding, indexation avancée (par tableaux d'entiers ou de booléens)
Opérations sur les tableaux : opérations basiques, broadcasting, méthodes spécifiques (min, max, mean, std...), travailler à partir de formules mathématiques.
Entrées/sorties avec Numpy
Explication de l'optimisation des opérations sur les tableaux avec Numpy : vectorisation, allocation mémoire, binding C++, compilation sur architecture dédiée, optimisation des ressources du processeur (CPU/SIMD optimisation)
Bannir les boucles for
Atelier : comparaison de performances avec Python natif sur la manipulation/calculs de gros tableaux


Profilage/timing
Atelier : analyse de l'empreinte mémoire avec memory_profiler


Calcul scientifique avec SciPy
Durée : 6h
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Présentation générale de librairie : integrate, linalg, fftpack, signal, ndimage, odr, optimize, spatial
Quelques exemples : Fit de courbe, Algèbre linéaire, Fourrier, Traitement du signal
Atelier : matrices. Calcul de valeurs propres. Calcul de la matrice de passage.

Atelier : mise en oeuvre d'un système Lotka-Volterra avec matplotlib

Atelier : mise en oeuvre d'un système de pendule. Exploitation des fonctions d'intégration.


Exploration et analyse de données avec Pandas
Durée : 7h30
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Structure de données : DataFrame, Serie
Fonctionnalités essentielles : Attributs, statistiques descriptives, type de données, ...
Indexation et sélection de données : basique, accès par attribut, slicing, sélection par label, par position, par fonction callable, méthodes de sélection (isin, where), sélection par masque
Atelier : analyse de fichiers de températures mondiales : extraction des données, découpage, structuration.


Opérations mathématiques sur les DataFrames : concaténation, fusion, regroupement
Travailler avec des données textuelles : gestion de chaînes, encodage, gestion des accents, caractères diacritiques
Travailler avec des données manquantes : stratégie de remplissage, interpolations.
Atelier : nettoyage, préparation et regroupement des données précédentes. Mise en oeuvre des bfill, ffill, ... Gestion des nan.


Travailler avec des séries temporelles : les timestamps, calculs, gestion (origines, échelles, water-marking)
Atelier : gestion d'une fenêtre temporelle distante sur les données précédentes : calculs de moyenne, écart-type, min et max.


Outils d'entrée/sortie (csv, HDF5, ...)
Atelier : jointures multiples avec enrichissement, de fichiers csv vers un fichier HDF5


Accélération de code Python
Durée : 3h
Méthodes pédagogiques : alternance de théorie et de travaux pratiques
Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux
Présentation générale et rapide des outils existants pour accélérer les codes Python (Numba, Cython, Pythran)
Présentation de pyarrow pour le passage à l'échelle.
Passage à l'échelle et parallélisme avec Dask
Atelier : Réalisation d'un enrichisseur de données sur Dask entre fichiers parquets sur S3



Retour au descriptif
Modalités et délais d'accès
Méthodes mobilisées

Pythagore-F.D.

01 55 33 52 10
pfd@pythagore-fd.fr
Calendrier
Code cours : LY002

Contenu de la formation
Python avancé : programmation scientifique:

Accès à la liste des cours



Vous pouvez bien entendu composer votre programme personnel à partir de nos descriptifs de cours

Note moyenne des participants à la formation Python avancé : programmation scientifique

4.4/5




Version du document : R222
Date de mise à jour du document : 2024/03/22