Aller au contenu principal

PLB CONSULTANT : 02. Python, perfectionnement

Organisme

PLB CONSULTANT
3-5 RUE MAURICE RAVEL
92300 LEVALLOIS PERRET
Voir toutes ses formationsAutres organismes proposant cette formation

Durée

28 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

Auto-évaluation en début et en fin de formation.

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1176€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
4704€ HT / groupe
4 stagiaires minimum

Public

Ingénieurs et développeurs.

Pré-requis

Disposer de bonnes connaissances en développement Python.

Objectifs pédagogiques

- Utiliser les techniques avancées du langage Python : Context Manager, métaclasses, closures, fonctions avancées

- Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme 

- Packager et déployer ses artefacts Python 

- Exploiter des librairies contribuant au succès du langage : calcul scientifique, Intelligence Artificielle, XML, réseau

Programme détaillé

 

Rappels importants sur le langage et compléments

Le typage fort en Python

Schéma de fonctionnement de la mémoire d’un programme Python (variables locales, passage par valeur/référence, variables non mutable, etc.)

Rappels sur les différences entre tableaux, listes, dictionnaires, slices, etc.

Les fonctions anonymes (lambda)

Syntaxe d’appels étendus (*args, **kwargs)

Intérêts de déterminer le type d’un objet, d’une méthode, ou d’un module (introspection)

Exemple de synthèse sur les concepts objets en Python (classes, propriétés, méthodes, instances)

Exemple de synthèse sur la syntaxe du langage (variables, boucles, tests, exceptions, …)

Travaux pratiques

Objectif : Valider que les concepts et la syntaxe de Python sont maîtrisés 

Description : Quiz ludique (bêtisier des erreurs classiques en Python). Écriture d’une fonction qui extrait une sous liste à partir d’une liste selon une fonction de critères passée en argument. Écriture d’une fonction qui « nettoie » un tableau passé en argument selon un dictionnaire de symboles « interdits » et présents dans un fichier texte.

 

Packager et déployer votre code Python

En quoi consiste le packaging de code ?

Projet vs bibliothèque  

Comment décrire le module packagé (setup.py) ?

Le Python Package Index (PyPI, Métadonnées).

Les outils pour packager ses librairies (disutils, setuptools)

Installer des librairies tierces (pip, easy_install).

Isoler les environnements de différents projets (virtualenv)

Gérer un projet avec pipenv

Créer un wheel distribuable avec setup.cfg

Compiler le code Python en un exécutable avec nuitka

Travaux pratiques

Objectif : Valider que l’environnement de développement est maîtrisé ainsi que le packaging de ses applications

Description : Création d‘un environnement virtuel (virtualenv) pour tester l’installation de modules de versions différentes sur des versions différentes de Python (plusieurs projets sur une même machine sans interférence). Packaging de l’une de nos propres librairies et installation dans l’environnement virtualisé des autres participants.

 

Manipulations avancées des primitives en Python

Générer du code à la volée : factories puis métaclasses

Décorateurs à plusieurs niveaux

Context manager et décorateur à la fois

Au delà de yield : la méthode send() des générateurs

Monkey paching et autres injections de code

Introspection du code

Travaux pratiques

Objectif : Savoir mettre en œuvre l’introspection et les factories

Description : Mise en œuvre de l’introspection (appel de fonction avec arguments dans le « désordre »)

Utilisation d’une classe différente selon le processus de connexion (login/password ou annuaire par exemple) avec les usines de classe (Factories)

 

Performances et parallélisation

Programmation non blocante avec les threads

Le GIL et les limites des threads

Exploiter plusieurs coeurs avec le multiprocessing

I/O asynchrone avec asyncio

Les outils pour lire l’activité (Timeit, cProfile)

Calcul distribué avec la librairie Celery

Les faiblesses du multithreading

Travaux pratiques

Objectifs : Savoir manipuler les threads en Python pour gagner en performances

Description : Mise en œuvre de l’algorithme Map Reduce avec Celery. Observations des appels et du temps passé dans les différentes fonctions pour diagnostiquer où se situe le goulot d’étranglement.

 

Manipulations avancées des données

Rappels sur les formats de données structurées : CSV, flux XML et JSON

Manipulation des données issues de ces fichiers par des structures Python adaptées

Le parseur XML ElementTree

Fonctions d‘accès et de download de données en ligne

A quoi sert un ORM (Object-relational Mapper) ?

Synchronisation des objets Python avec une base SQL (ORM sqlAlchemy)

Travaux pratiques

Objectif : Savoir manipuler des flux XML ou JSON 

Description : Capture de séries financières (indices de marché et cours de bourse) à partir d'un fichier CSV représentant des données issues de data.gouv.fr, on extrait une statistique (décrite en XML) et on l’affiche dans un bar graphe (utilisation de la libraire PySpark). Cet atelier permet d’appréhender la puissance du moteur Spark combiné à la simplicité de Python pour l’analyse de données.

 

La représentation graphique de données en Python

Introduction aux bases de la visualisation de données

Focalisation sur la génération de graphes grâce à la librairie Matplotlib : démonstration de l’application de graphes Matplotlib à la visualisation de problèmes concrets

Travaux pratiques

Objectif : Savoir utiliser la bibliothèque MatplotLib

Description : Poursuite de l’atelier précédent en générant des visualisations graphiques illustrant les analyses de données réalisées

 

Présentation des grandes librairies Python

En quoi consiste l’analyse de données ?

Introduction au concept de Dataframe

Manipuler et analyser les données avec Pandas

Analyser les données avec NumPy et SciPy

Fonctions de manipulation et de calcul matriciel (Numpy)

Fonctions de Statistiques Descriptives (SciPy)

Fonctions de comparaison de populations, mesures d’association, etc. (SciPy)

Fonctions de classification automatique (SciPy) : k-means

Introduction aux concepts et au vocabulaire de l’IA (apprentissage supervisé/non supervisé)

Intelligence Artificielle et algorithmes d'apprentissage avec Scikit-Learn

Tracer et visualiser les données avec Matplotlib

Créer un serveur internet WEB, FTP, etc. avec Twisted (aperçu)

Dialoguer avec tout matériel compatible SNMP avec PySNMP (aperçu)

Travaux pratiques

Objectifs : Comprendre le champ fonctionnel de chaque librairie et leurs dépendances ou complémentarités. Savoir mettre en œuvre NumPy et SciPy pour le calcul scientifique et l’analyse de données.

Description : Quizz sur les bibliothèques (quelles bibliothèques utiliser pour quel traitement formulé sous la forme d’un besoin métier  ?). Mise en œuvre de NumPy et SciPy dans le contexte de l’analyse financière (Collecte de données, intégration, nettoyage, calcul, analyse). Visualisation avec Matplotlib. 

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.