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 : toutes nos formations sont accessibles aux personnes en situation de handicap, qu’il soit moteur, visuel, auditif ou cognitif ; quelles qu’en soient les particularités.
Nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement. Nos locaux sont en rez-de-chaussée avec des places de parkings extérieures juste devant l’entrée du bâtiment. Aussi, merci de nous informer de vos besoins d’adaptation ; les échanges peuvent se faire et rester en toute confidentialité.
Taux de satisfaction 2i2l : 100% des stagiaires sont "très satisfaits", "satisfaits" ou "plutôt 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.