Python

Formation Python : initiation au calcul scientifique avec Python

Résumé

Langage : Python dans sa dernière version pour la distribution Anaconda. L’Environnement de Développement Intégré PyCharm, le serveur Jupyter / Lab, et un des navigateurs parmi Firefox / Chrome / Safari.
Durée/s : 35 heures : 3 jours/21 heures pour les bases et 14 heures/2 jours en option pour l’analyse de données volumineuses et la cartographie
Objectifs :
 utiliser le langage Python pour analyser et visualiser leurs données
 identifier les capacités et limites du langage Python pour la data science.
 utiliser les librairies de la Scipy Stack (Numpy, Pandas, Scipy, Matplotlib, iPython) sur lesquelles s’appuient toutes les autres librairies scientifiques
 visualiser la "Big Picture" de l’écosystème scientifique de Python : connaître les principaux outils de développement open source, savoir où trouver les librairies adaptées aux besoins et évaluer leur pérennité dans le temps.
 appliquer les bonnes pratiques de programmation, identifier les limites de leurs librairies
 utiliser des librairies taillées pour l’analyse de données volumineuses - le Big Data.
Pré-requis : avoir une première expérience en algorithmique et du langage Python.
Méthodes mobilisées : la formation est essentiellement pratique (70%), chaque concept théorique est suivi d’exemples et d’exercices, ce qui permet aux participants d’assimiler immédiatement les notions abordées. Les supports sont proposés sous la forme de notebooks Jupyter / Lab. Ils sont exhaustifs et peuvent être ré-utilisés après la formation en autonomie.
Publics : experts
Pré-requis : savoir développer en Python
Méthodes mobilisées : alternance d’apports théoriques et d’exercices de mise en application pratique.
Modalités et délais d’accès : sur inscription préalable au minimum 1 semaine avant le début de la formation selon disponibilité du formateur.
Modalités d’évaluations : une évaluation du niveau des stagiaires est réalisée avant l’entrée en formation par téléphone ou au moyen d’un questionnaire. Évaluation des acquis et de la satisfaction en fin de formation.
Accessibilité aux personnes en situation de handicap ou présentant des difficultés d’apprentissage : nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement (les précisions).
Taux de satisfaction 2i2L : 96,34 % des stagiaires sont satisfaits à l’issue de leur formation.
Tarif : pour une demande de formation interne, nous consulter.

Présentation

En quelques années [1], Python est devenu le langage de référence des métiers de la data science [2]. Outil indispensable des data analysts, data scientists, machine leaning engineers, et autres *manipulateurs de données*, il a su convaincre les plus grands industriels et chercheurs par sa simplicité et la richesse de ses librairies qui se déclinent aujourd’hui dans quasiment tous les domaines des sciences.

Son efficacité est telle que sa communauté s’accorde à dire qu’il a, dans plusieurs domaines, dépassé en fonctionnalités les logiciels propriétaires qui représentaient la référence du marché comme MatLab, Mathematica, SAS, ...

Son succès lui a permis de développer un écosystème scientifique particulièrement riche et varié ou il est facile de se perdre tant la diversité des librairies est grande. Par exemple, pour la visualisation de données, le machine learning, ou encore le calcul parallèle, disciplines ou il excelle, il existe plus de 30 librairies disponibles et de qualité pour chacun de ces 3 sujets ! Par laquelle commencer ? Laquelle est la plus adaptée à votre besoin ? Laquelle sera la plus pérenne dans le temps ?

Nous vous proposons au travers de cette formation une initiation aux principales librairies scientifiques de l’écosystème Python en vous dévoilant la cartographie de la myriade de solutions qui composent son univers afin de vous aider à vous y retrouver et choisir les solutions les plus pertinentes pour vos besoins.

Programme

Rappels de syntaxe et pièges (Jour 1)
Afin de s’assurer que les participants possèdent les connaissances nécessaires sur la syntaxe requise pour suivre la formation et une compréhension des principaux pièges du langage, quelques rappels sont réalisés en début de formation :
 Types mutuable/unmutable et affectation par référence
 Ecrire une fonction et passage de paramètres par référence
 Notation par compréhension
 Fonctions ayant une liste non limitée de paramètres
 Fonctions Lambda
 Unpacking de paramètres

Présentation de l’écosystème scientifique de Python (Jour 1)
Nous vous présentons ici la *Big Picture* des principales librairies et outils scientifiques disponibles avec Python en vous donnant les clefs vous permettant de choisir et évaluer les librairies les plus adaptées à vos besoins.
 La Scipy Stack : Numpy, Scipy, Pandas, Matplotlib et iPython : les librairies incontournables sur lesquelles s’appuient toutes les autres
 Les librairies phares présentées par thématique : Visualisation de données, Machine Learning, Calcul parallèle, Physique, Chimie, Analyse du langage naturel, Biologie, ...
 Les outils open source qui vous aideront dans votre travail quotidien : Gephi, VistIt/Paraview, Spyder, SageMath, SuperSet, ...

Quelques mots sur les erreurs de calculs (Jour 1)
Python, **comme presque tous les langages**, utilise la norme IEEE754, dite virgule flottante, pour travailler avec des nombres réels. Cette norme entraîne des erreurs d’arrondis quasiment incontournables ayant pour conséquences des calculs qui sont rarement justes.
Essayez ce calcul : 0.1 + 0.1 + 0.1 - 0.3 == 0.0 dans votre interpréteur...
 Comprendre les erreurs de calculs
 Savoir comment les contourner
 Présentation de librairies tierces permettant de réduire ces erreurs

Numpy (Jour 1)
Numpy est la librairie de calcul numérique sur laquelle s’appuient toutes les autres librairies scientifiques. Elle offre toutes les fonctions de base (algèbre linéaire) pour calculer avec des tableaux de nombres.
 Principales différences entre les tableaux Numpy et les listes Python
 Présentation des principales fonctions
 Sélections et filtres
 Quelques fonctions avancées : tri, concaténation, recherche, ...

Matplotlib (Jour 1 et 2)
Matplotlib est une des librairies les plus complètes pour la visualisation de données. Beaucoup d’autres librairies de plus haut niveau comme Pandas / Seaborn s’appuient sur cette dernière.
 Prise en mains : tracés de courbes et points
 Les éléments de base de la librairie : axes, légendes, annotations, palettes de couleurs...
 Quelques graphiques : histogrammes, camemberts, boxplot, ...
 Représentations en 3 dimensions : points, courbes et surfaces

Analyse de données avec Pandas (Jour 2 et 3)
Pandas permet l’analyse de données tabulaires : typiquement des fichiers CSV/Excel/Calc. C’est une des librairies qui a le plus contribué à l’émergence de Python dans les disciplines scientifiques tant elle est performante et efficace.
 Les concepts de base : index, sélection de données, séries et dataframes.
 Les fonctions de base : filtres, manipulation des colonnes, tri, recherche, groupby, lecture/sauvegarde
 Les fonctions avancées : jointures, manipulation de séries temporelles, interpolations

Scipy (jour 3)
Scipy propose des fonctions mathématiques avancées (statistiques, optimisation, interpolations, traitement d’images, ...) basées sur Numpy. Elle offre un complément incontourbale à Numpy. Nous vous présentons ici quelques fonctionalités parmi les plus utilisées.
 Régressions et interpolations
 Traitement d’images
 Statistiques

Manipulation de données volumineuses (Jour 4)
Si les librairies de la scipy stack sont incontourbables pour l’utilisation de Python en data science, elles sont néanmoins limitées à des données tenant en mémoire. Dès que vous dépassez quelques giga-octets de données, elles ne pourront plus répondre à vos besoins.
Mais la communauté Python a su proposer des solutions innovantes et performantes pour dépasser cette limite !
 Les formats de données orientés BigData : HDF5, NetCDF, Parquet et les librairies associées : *h5py, pytables, netcdf4, xarray, iris, parquet*,...
 Dask pour manipuler des tableaux Numpy ne tenant pas en mémoire et paralléliser les calculs sur plusieurs coeurs/machines
 Bokeh et DataShader pour visualiser des données particulièrement volumineuses.

Visualisation de données géospatiales (Jour 5)
La visualisation de données prend une toute autre dimension lorsqu’elle intègre des composantes cartographiques. Cette journée permet de se familiariser avec les librairies géospatiales de Python.
 Présentation de paysage des librairies cartographiques disponibles avec Python
 Gérer les conversions de systèmes de coordonnées géospatiales
 Visualiser des données sur des cartes interactives avec Folium et iPyleaflet
 Visualiser des données sur des cartes bitmap avec Cartopy
 Visualiser des données vectorielles issues de fichiers ShapeFile.

APPLICATIONS A VOS DONNEES
Dans le cas d’une formation en Intra-Entreprise, nous vous proposons de réaliser des exercices sur vos propres données afin de vous offrir des exemples concrets si cela ne présente pas de problèmes techniques ou de confidentialité.

Les exercices réalisés pendant la session de formation seront alors adaptés en fonction des données que vous pourrez mettre à disposition et de vos centres d’intérêts.