Romain Rincé Spécialiste en Machine Learning

Python, perfectionnement

Prix : 990.0 € HT
Durée : 4j - 28h00

Ce que vous allez apprendre

Le langage Python s'impose aujourd'hui comme un socle technologique pour le développement de grands projets logiciels. Vous mettrez en œuvre, dans cette formation, les techniques avancées du langage Python ainsi que ses principales librairies afin de pouvoir répondre aux exigences qualité de ces projets.

Objectifs

  • Implémenter de manière rigoureuse des Design Patterns reconnus
  • 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

Public concerné

Ingénieurs et développeurs.

Prérequis

Bonnes connaissances en développement Python, ou connaissances équivalentes à celles apportées par le cours PYT. Expérience requise. Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Programme

Rappels importants sur le langage

  • Affectation par référence et types de données modifiables, non modifiables (mutable).
  • Passage d'arguments, valeurs par défaut et variables locales.
  • Variables de classe et d'instances.
  • Les slices et structures de données avancées.
  • L'introspection.
  • Eléments avancés des structures de contrôle : la clause else des instructions for, while, try/except.

Travaux pratiques

Optimisation : intersection de listes et calcul de complexité d'algorithmes.

Fonctions avancées

  • Utilisation avancée de décorateurs (de la génération à la consommation, pipeline de consommateurs).
  • Les décorateurs et Design Patterns.
  • Fermeture/closure.

Travaux pratiques

Chaînage de consommateurs de données. Abonnement à des événements via les décorateurs.

Programmation Orientée Objet avancée

  • Les propriétés (property).
  • Les itérateurs.
  • L'héritage multiple et ses travers.
  • Les Context Managers.
  • Les classes et méthodes abstraites (ABC).
  • Les métaclasses.

Travaux pratiques

Implémenter une métaclasse pour créer des classes de type singleton.

Déploiement et qualité

  • Installer des librairies tierces (pip, easy_install).
  • Le Python Package Index (PyPI).
  • Packager ses librairies (distutils, setuptools).
  • Déployer un environnement autonome (virtualenv et buildout).

Travaux pratiques

Packager une librairie et la déposer sur PypI.

Le parallélisme : optimiser les performances de vos programmes

  • Profilez vos programmes avec Timeit et cProfile.
  • Parallélisation : évitez le multithreading et foncez avec le multiprocessing.
  • Calcul distribué avec la librairie Celery.

Travaux pratiques

Répartition et consolidation (Map Reduce) de calculs avec Celery.

Les librairies contribuant au succès du langage

  • Calcul scientifique et statistiques avec Numpy, Scipy, Matplotlib et Pandas.
  • Intelligence Artificielle et algorithmes d'apprentissage avec Scikit-Learn.
  • Recherche d'informations dans des fichiers XML avec ElementTree.
  • Réseau : relay tcp avec Twisted et supervision SNMP avec PySNMP.

Travaux pratiques

Extraction d'informations dans des fichiers de log XML, filtres et statistiques sur les données collectées puis représentation à l'aide de graphiques des tendances des informations.