Formation Python Scientifique

Formation Python scientifique pour l'analyse de données

Prix (Formation inter-entreprise)

2500€ HT / personne

Durée

5 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Il existe 3 principaux profils d'utilisateurs du langage Python :

  • Les administrateurs systèmes
  • Les développeurs web
  • Et ceux qui calculent !

Python est devenu un outil du quotidien de tous les ingénieurs et chercheurs ayant de forts besoins en calcul numérique et visualisation de données.

Les conférences PyData (http://pydata.org) qui se déroulent toute l'année dans tous les hémisphères du globe sont un des points de rendez-vous de cette communauté très pointue et très active : 10 conférences en 2016 ! Peu de librairies informatiques peuvent s'enorgueillir d'une telle dynamique et d'un si haut niveau d'expertise.

Cette popularité auprès des plus grands cerveaux de cette planète est très certainement liée aux qualités de ce langage et des librairies que nous vous proposons de découvrir...

Python est simple, facile et riche : ses scientifiques et ingénieurs ne sont pas tous informaticiens et l'apprentissage de Python est bien plus facile que celui d'autres langages aussi utilisés dans ces secteurs tels Fortran, C/C++ ou encore R qui, lui, est aussi simple mais limité aux pures statistiques

Les librairies scientifiques de Python couvrent quasiment tous les dommaines des sciences : Mathématiques, physique, chimie, biologie, astronomie, mécanique, imagerie, intelligence artificielle, statistiques, finance...
Elles sont open source, donc gratuites, personnalisables et très performantes
Elles peuvent être utilisées en dehors des environnements de simulation et déployées en production
Elles concurrencent et parfois dépassent les logiciels les plus pointus du domaine tels MatLab, Mathematica, Statistica, ...
Elles sont souvent développées par les scientifiques et ingénieurs eux-mêmes et donc particulièrement adaptées à leurs métiers
Elles bénéficient d'une communauté très active

Cette formation vous propose de découvrir cet univers scientifique et les principales librairies Python qui en constituent le socle incontournable que tout utilisateur doit posséder.

Elle aborde enfin les algorithmes d'apprentissage au travers la librairie scikit-learn afin de vous permettre de dénicher les informations les plus précieuses qui se cachent dans vos données brutes.

Les objectifs

• Comprendre la "Big Picture", la vision globale de l'écosystème scientifique de Python
• Savoir sélectionner les librairies adaptées à vos problèmes de traitements de données
• Savoir manipuler les librairies de la ScipyStack : Numpy, Scipy et Pandas
• Savoir calculer avec Numpy et SciPy
• Savoir analyser des données avec Pandas
• Savoir appliquer des statistiques sur ses données pour apprendre à les connaître
• Être capable d'utiliser des librairies graphiques pour visualiser ses données
• Savoir mettre en avant l'information importante
• Être capable de consulter des données volumineuses
• Comprendre les différents notions de la programmation concurrente
• Savoir parallèliser les traitements dans ses programmes
• Être capable de répartir ses traitements dans un environnement de calcul distribué avec
celery ou PySpark
• Comprendre les différentes techniques d'apprentissage automatique et savoir quand les
utiliser
• Savoir utiliser une librairie d'apprentissage basée sur l'agorithme des plus proches voisins
• Etre capable d'optimiser la vitesse de calcul des librairies utilisées

Pré-requis

  • Ordinateur à apporter
  • Connaître l'algorithmie
  • Avoir une première expérience du langage Python
  • Connaître quelques rudiments mathématiques, trigonométrie (sinus, cosinus) et algèbre linéaire (calcul matriciel)

Le programme de la formation Python Scientifique

Partie 1 : Présentation de l'écosystème scientifique "The Big Picture"

Ce chapitre vous offre une vision d'ensemble de l'environnement scientifique de Python afin que vous ne restiez pas devant l'arbre qui cache la forêt, et que vous sachiez trouver les chemins balisés.
- Présentation de quelques librairies scientifiques populaires :
• Les socle commun : La Scipy Stack
• L'astonomie
• La programmation concurrente
• La physique
• La chimie
• Le traitement d'images, la vision
• L'apprentissage automatique
• Les statistiques
• La biologie
- Choisir sa distribution
• Les distributions cross-platform
• Les distributions en ligne
• Les distributions spécifiques pour Windows
- Les outils de développement
Un bon ouvrier a toujours de bons outils
• L'interpréteur iPython
• Les éditeurs PyCharm et Spyder
• Les notebooks Jupyter

Partie 2 : Calcul scientifique

Dans ce chapitre nous aborderons les librairies de la Scipy Stack.
- Ce que tout scientifique et informaticien devrait savoir sur la représentation des nombres
en informatique
• Les normes (virgule flottante et fixe)
• Les erreurs d'arrondis
• Contourner et gérer ces erreurs
- Numpy
Numpy est une librairie Python de calcul numérique (algèbre linéaire) permettant de manipuler des vecteurs et matrices à plusieurs dimensions. Elle offre des types de données avancés pouvant être gérés très simplement. Implémentée en langage C elle mixe le meilleur des 2 mondes: la souplesse du langage Python avec les performances du C.
• Les types de données et de tableaux gérés par Numpy
• Indexation et manipulation de tableaux
• Les fonctions utiles: création, association, manipulation, extraction de données
• Entrées/Sorties et formats de fichiers : natif Numpy, NetCDF, HDF5, Matlab
- Spicy
SciPy fournit un ensemble d'algorithmes mathématiques et de fonctions utilitaires qui
s'appuient sur la librairie Numpy.
• Algèbre linéaire (vecteurs, matrices, résolution d'équations linéaires)
• Analyse numérique (intégration, équations différentielles, interpolation, regression,
optimisation)
• Entrées/Sorties
• Traitement du signal(transformées de Fourier, filtres)
• Statistiques et data mining (correlation, distribution)
- Pandas
Pandas est une librairie permettant d'analyser avec efficacité des structures de données complexes. Pandas permet de manipuler des matrices dont chaque colonne peut être d'un type différent et offrant de nombreuses et puissantes fonctionnalités de manipulation, réduction, recherche et statistiques.
• Séries
• Matrices riches (DataFrame)
• Sélection et indexation des données
• Manipulations de données (groupement, ajout, suppression, redimensionnement, pivots, …)
• Opérations et statistiques
• Entrées/Sorties

Partie 3 : Visualisation de données

Maintenant que nous savons calculer et analyser nos données, il est temps d'éditer de beaux graphiques mettant en valeur les informations importantes que nous avons su y déceler.
- Présentation de l'écosystème des librairies de visualisation pour Python
• Les bases avec matplotlib
• Les librairies orientées Web
• Les librairies orientées big data et performanes
• Les librairies spécialisées pour la 3D
- Les concepts de base avec Matplotlib
• Les concepts de Matplotlib
• Titres, légendes, annotations
• Axes, échelles de représentations
• Couleurs et styles
• 2D/3D
• Travailler avec plusieurs graphiques
• Intéraction avec l'utilisateur
- L'art de faire de beaux graphiques
• Graphic Grammar
• La simplicité c'est mieux
- Publier ses graphiques sur Internet
• Les librairies disponibles
• Cas d'application

Partie 4 : Le Calcul distribué

  • Présentation • Qu'est-ce que le prallélisme, la programmation concurrente ? • Différences entre multithreading et multiprocessing et intérêts respectifs • Parallélisme, Cluster computing, grid computing et cloud computing
  • Multithreading • Le module threading • Démarrer, arrêter un thread • La synchronisation • Pourquoi le module multithreading de Python n'est pas vraiment une solution professionnelle viable : le GIL • Les librairies ou versions de Python contournant ce problème: Stackless Python, Jython, IronPython, Greenlet
  • Multiprocessing • Le module multiprocessing • Le même exercice que pour les threads revisité avec les processus : une ligne de code à changer, ou presque… • Faire communiquer des processus : Queues, Pipes, mémoire partagée, Proxy Objects, listeners et clients • Les managers et pool of workers
  • Calcul distribué avec Celery ou PySpark • Présentation des 2 solutions • Installation d'une solution • Première application • Réaliser différents types de traitement de tâches
  • Visualiser des jeux de données volumineux (big data) • Identifier les limites de votre librairie graphique • Discrétisation des données • Paralléliser le calcul de vos graphiques • Quelques outils qui vous faciliteront la vie

Partie 5 : Apprentissage automatique - Machine Learning

Dans cette partie nous utiliserons la librairie Scikit-Learn pour mettre en oeuvre un algorithme d'apprentissage automatique.
- Concepts de base: présentation du Machine Learning
• Les types d'apprentissage
• Les algorithmes
• Savoir choisir son algorithme
- Mise en oeuvre
Dans cette partie du cours nous mettrons en oeuvre un cas concret d'apprentissage automatique basé sur l’algorithme des plus proches voisins

Partie 6 : Accélérer Python/Numpy

Cette section présente différentes approches disponibles pour accélérer vos projets Python, en utilisant différentes techniques de compilation.
- Compiler la scipy stack spécifiquement pour votre architecture
• Avec les librairies vectorielles open source
• Avec les librairies spécifiques par constructeur
- Utiliser les librairies de compilation à la volée (Just In Time)
• Présentation des différentes solutions
• Mise en oeuvre d'une solution et mesure des gains

Télécharger le programme

Le(s) formateur(s)

Gaël Pegliasco
Ingénieur développement et chef de projet, Gaël a plus de 19 ans d'expérience dont 13 sur la conception et le développement de projets web. Expert Python et formateur sur de nombreuses technologies, Gaël n'hésite pas à transmettre la richesse de son expérience au travers de sa pédagogie participative.

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formation à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accèder au Manifeste

Nos clients

Leboncoin.fr
Alcatel
CNRS
Air France
Orange
Peugeot

Nos formations en images

Sass et Compass
CasperJS
Ruby on Rails
Ruby

Formation Python Scientifique

Formation Python scientifique pour l'analyse de données

Il existe 3 principaux profils d'utilisateurs du langage Python :

  • Les administrateurs systèmes
  • Les développeurs web
  • Et ceux qui calculent !

Python est devenu un outil du quotidien de tous les ingénieurs et chercheurs ayant de forts besoins en calcul numérique et visualisation de données.

Les conférences PyData (http://pydata.org) qui se déroulent toute l'année dans tous les hémisphères du globe sont un des points de rendez-vous de cette communauté très pointue et très active : 10 conférences en 2016 ! Peu de librairies informatiques peuvent s'enorgueillir d'une telle dynamique et d'un si haut niveau d'expertise.

Cette popularité auprès des plus grands cerveaux de cette planète est très certainement liée aux qualités de ce langage et des librairies que nous vous proposons de découvrir...

Python est simple, facile et riche : ses scientifiques et ingénieurs ne sont pas tous informaticiens et l'apprentissage de Python est bien plus facile que celui d'autres langages aussi utilisés dans ces secteurs tels Fortran, C/C++ ou encore R qui, lui, est aussi simple mais limité aux pures statistiques

Les librairies scientifiques de Python couvrent quasiment tous les dommaines des sciences : Mathématiques, physique, chimie, biologie, astronomie, mécanique, imagerie, intelligence artificielle, statistiques, finance...
Elles sont open source, donc gratuites, personnalisables et très performantes
Elles peuvent être utilisées en dehors des environnements de simulation et déployées en production
Elles concurrencent et parfois dépassent les logiciels les plus pointus du domaine tels MatLab, Mathematica, Statistica, ...
Elles sont souvent développées par les scientifiques et ingénieurs eux-mêmes et donc particulièrement adaptées à leurs métiers
Elles bénéficient d'une communauté très active

Cette formation vous propose de découvrir cet univers scientifique et les principales librairies Python qui en constituent le socle incontournable que tout utilisateur doit posséder.

Elle aborde enfin les algorithmes d'apprentissage au travers la librairie scikit-learn afin de vous permettre de dénicher les informations les plus précieuses qui se cachent dans vos données brutes.

Les objectifs

• Comprendre la "Big Picture", la vision globale de l'écosystème scientifique de Python
• Savoir sélectionner les librairies adaptées à vos problèmes de traitements de données
• Savoir manipuler les librairies de la ScipyStack : Numpy, Scipy et Pandas
• Savoir calculer avec Numpy et SciPy
• Savoir analyser des données avec Pandas
• Savoir appliquer des statistiques sur ses données pour apprendre à les connaître
• Être capable d'utiliser des librairies graphiques pour visualiser ses données
• Savoir mettre en avant l'information importante
• Être capable de consulter des données volumineuses
• Comprendre les différents notions de la programmation concurrente
• Savoir parallèliser les traitements dans ses programmes
• Être capable de répartir ses traitements dans un environnement de calcul distribué avec
celery ou PySpark
• Comprendre les différentes techniques d'apprentissage automatique et savoir quand les
utiliser
• Savoir utiliser une librairie d'apprentissage basée sur l'agorithme des plus proches voisins
• Etre capable d'optimiser la vitesse de calcul des librairies utilisées

Pré-requis

  • Ordinateur à apporter
  • Connaître l'algorithmie
  • Avoir une première expérience du langage Python
  • Connaître quelques rudiments mathématiques, trigonométrie (sinus, cosinus) et algèbre linéaire (calcul matriciel)

Le programme de la formation Python Scientifique

Partie 1 : Présentation de l'écosystème scientifique "The Big Picture"

Ce chapitre vous offre une vision d'ensemble de l'environnement scientifique de Python afin que vous ne restiez pas devant l'arbre qui cache la forêt, et que vous sachiez trouver les chemins balisés.
- Présentation de quelques librairies scientifiques populaires :
• Les socle commun : La Scipy Stack
• L'astonomie
• La programmation concurrente
• La physique
• La chimie
• Le traitement d'images, la vision
• L'apprentissage automatique
• Les statistiques
• La biologie
- Choisir sa distribution
• Les distributions cross-platform
• Les distributions en ligne
• Les distributions spécifiques pour Windows
- Les outils de développement
Un bon ouvrier a toujours de bons outils
• L'interpréteur iPython
• Les éditeurs PyCharm et Spyder
• Les notebooks Jupyter

Partie 2 : Calcul scientifique

Dans ce chapitre nous aborderons les librairies de la Scipy Stack.
- Ce que tout scientifique et informaticien devrait savoir sur la représentation des nombres
en informatique
• Les normes (virgule flottante et fixe)
• Les erreurs d'arrondis
• Contourner et gérer ces erreurs
- Numpy
Numpy est une librairie Python de calcul numérique (algèbre linéaire) permettant de manipuler des vecteurs et matrices à plusieurs dimensions. Elle offre des types de données avancés pouvant être gérés très simplement. Implémentée en langage C elle mixe le meilleur des 2 mondes: la souplesse du langage Python avec les performances du C.
• Les types de données et de tableaux gérés par Numpy
• Indexation et manipulation de tableaux
• Les fonctions utiles: création, association, manipulation, extraction de données
• Entrées/Sorties et formats de fichiers : natif Numpy, NetCDF, HDF5, Matlab
- Spicy
SciPy fournit un ensemble d'algorithmes mathématiques et de fonctions utilitaires qui
s'appuient sur la librairie Numpy.
• Algèbre linéaire (vecteurs, matrices, résolution d'équations linéaires)
• Analyse numérique (intégration, équations différentielles, interpolation, regression,
optimisation)
• Entrées/Sorties
• Traitement du signal(transformées de Fourier, filtres)
• Statistiques et data mining (correlation, distribution)
- Pandas
Pandas est une librairie permettant d'analyser avec efficacité des structures de données complexes. Pandas permet de manipuler des matrices dont chaque colonne peut être d'un type différent et offrant de nombreuses et puissantes fonctionnalités de manipulation, réduction, recherche et statistiques.
• Séries
• Matrices riches (DataFrame)
• Sélection et indexation des données
• Manipulations de données (groupement, ajout, suppression, redimensionnement, pivots, …)
• Opérations et statistiques
• Entrées/Sorties

Partie 3 : Visualisation de données

Maintenant que nous savons calculer et analyser nos données, il est temps d'éditer de beaux graphiques mettant en valeur les informations importantes que nous avons su y déceler.
- Présentation de l'écosystème des librairies de visualisation pour Python
• Les bases avec matplotlib
• Les librairies orientées Web
• Les librairies orientées big data et performanes
• Les librairies spécialisées pour la 3D
- Les concepts de base avec Matplotlib
• Les concepts de Matplotlib
• Titres, légendes, annotations
• Axes, échelles de représentations
• Couleurs et styles
• 2D/3D
• Travailler avec plusieurs graphiques
• Intéraction avec l'utilisateur
- L'art de faire de beaux graphiques
• Graphic Grammar
• La simplicité c'est mieux
- Publier ses graphiques sur Internet
• Les librairies disponibles
• Cas d'application

Partie 4 : Le Calcul distribué

  • Présentation • Qu'est-ce que le prallélisme, la programmation concurrente ? • Différences entre multithreading et multiprocessing et intérêts respectifs • Parallélisme, Cluster computing, grid computing et cloud computing
  • Multithreading • Le module threading • Démarrer, arrêter un thread • La synchronisation • Pourquoi le module multithreading de Python n'est pas vraiment une solution professionnelle viable : le GIL • Les librairies ou versions de Python contournant ce problème: Stackless Python, Jython, IronPython, Greenlet
  • Multiprocessing • Le module multiprocessing • Le même exercice que pour les threads revisité avec les processus : une ligne de code à changer, ou presque… • Faire communiquer des processus : Queues, Pipes, mémoire partagée, Proxy Objects, listeners et clients • Les managers et pool of workers
  • Calcul distribué avec Celery ou PySpark • Présentation des 2 solutions • Installation d'une solution • Première application • Réaliser différents types de traitement de tâches
  • Visualiser des jeux de données volumineux (big data) • Identifier les limites de votre librairie graphique • Discrétisation des données • Paralléliser le calcul de vos graphiques • Quelques outils qui vous faciliteront la vie

Partie 5 : Apprentissage automatique - Machine Learning

Dans cette partie nous utiliserons la librairie Scikit-Learn pour mettre en oeuvre un algorithme d'apprentissage automatique.
- Concepts de base: présentation du Machine Learning
• Les types d'apprentissage
• Les algorithmes
• Savoir choisir son algorithme
- Mise en oeuvre
Dans cette partie du cours nous mettrons en oeuvre un cas concret d'apprentissage automatique basé sur l’algorithme des plus proches voisins

Partie 6 : Accélérer Python/Numpy

Cette section présente différentes approches disponibles pour accélérer vos projets Python, en utilisant différentes techniques de compilation.
- Compiler la scipy stack spécifiquement pour votre architecture
• Avec les librairies vectorielles open source
• Avec les librairies spécifiques par constructeur
- Utiliser les librairies de compilation à la volée (Just In Time)
• Présentation des différentes solutions
• Mise en oeuvre d'une solution et mesure des gains

Télécharger le programme

Le(s) formateur(s)

Gaël Pegliasco
Ingénieur développement et chef de projet, Gaël a plus de 19 ans d'expérience dont 13 sur la conception et le développement de projets web. Expert Python et formateur sur de nombreuses technologies, Gaël n'hésite pas à transmettre la richesse de son expérience au travers de sa pédagogie participative.