Pandas est incontournable en data science Python — mais ses limites se manifestent vite : consommation mémoire excessive, exécution mono-thread, API parfois incohérente. Cette formation donne à vos équipes les outils pour dépasser ces limites.
Polars redéfinit la manipulation de données en Python : moteur en Rust, parallélisme natif, lazy evaluation, et capacité à traiter des datasets qui dépassent la RAM disponible grâce à son streaming engine. C'est aujourd'hui le meilleur choix pour passer un pipeline data du prototype à la production.
J'utilise quotidiennement Polars dans mes propres travaux de recherche, notamment pour l'analyse de l'intégralité du graphe de transactions Bitcoin — 16,5 milliards de liens entre 1,5 milliard d'adresses, sur fichiers Parquet partitionnés. Cette formation est construite à partir de cette pratique : ce que j'aurais voulu savoir quand mes traitements Pandas prenaient des semaines et saturaient la RAM — et que passer à Polars les a ramenés à quelques heures.
À l'issue de cette formation, vos collaborateurs sauront
- Écrire ou réécrire leurs traitements en Polars pour des gains de vitesse significatifs
- Traiter des datasets qui dépassent la RAM disponible grâce au streaming engine de Polars
- Lire et écrire des fichiers Parquet avec Polars et PyArrow pour un stockage et des échanges efficaces
- Accélérer leurs calculs numériques avec Numba et la compilation JIT
- Paralléliser des tâches CPU-bound indépendantes avec le module
multiprocessing - Choisir la bonne stratégie de performance selon le contexte : Polars, Numba ou multiprocessing
- Appliquer les meilleures pratiques de manipulation de données haute performance
Programme détaillé
Module 1 — Polars, le remplaçant moderne de Pandas
Architecture de Polars : moteur en Rust, parallélisme natif, Apache Arrow. API de base : Series, DataFrame, opérations essentielles. Lazy evaluation et query optimization. Streaming engine : traiter des données qui dépassent la RAM. Expressions Polars : l'API la plus puissante pour la manipulation de données. Gestion des données manquantes. Agrégations et fenêtres : group_by, over. Jointures et concaténations. Restructuration : pivot et unpivot. Séries temporelles : resampling, fenêtres glissantes, gestion des fuseaux horaires. Format Parquet : lecture/écriture, compression, partitionnement, interopérabilité avec PyArrow et Pandas. Migration de Pandas vers Polars : stratégies et équivalences. Benchmark comparatif sur des cas réels.
Module 2 — Numba, accélération JIT pour le calcul numérique
Principe de la compilation JIT avec Numba. Décorateurs @jit et @njit : quand et comment les utiliser. Accélération de boucles et de fonctions NumPy. Parallélisation avec @njit(parallel=True) et prange. Cas d'usage : simulation numérique, traitement de signaux, calcul scientifique. Limites de Numba et bonnes pratiques.
Module 3 — Multiprocessing, parallélisme multi-processus en Python
Le GIL Python et ses implications pour le parallélisme CPU-bound. Le module multiprocessing : Process, Pool, Queue, Pipe. Pool.map() et Pool.starmap() : parallélisation de tâches indépendantes. Partage de mémoire et communication entre processus. Comparaison multiprocessing vs Numba vs Polars : quand utiliser quoi. Pièges courants et débogage de code multiprocessing.
Vos équipes ont-elles le niveau Python requis ?
Les formations data science supposent une bonne maîtrise de Python : fonctions, itération, modules, espaces de nommage. Si ce n'est pas le cas de tous vos collaborateurs, je peux compléter la formation par le module Python — niveau 1 en amont des journées data science. Pour les équipes qui développent du code complexe, le module Python — avancé (programmation objet, décorateurs, métaclasses) est également disponible.
Ces compléments sont proposés au cas par cas — n'hésitez pas à m'en parler dans votre demande de devis.
Public et prérequis
Public cible
Data scientists, ingénieurs, chercheurs, post-doctorants et doctorants utilisant Pandas et souhaitant améliorer les performances de leurs traitements.
Prérequis
Niveau intermédiaire en Python (fonctions, itération, espaces de nommage, importation de modules) et en Pandas/NumPy. Cette formation est conçue comme la suite logique de la formation Python data science niveau 1.
Méthode pédagogique
La formation alterne exposés théoriques courts et exercices pratiques sur notebooks Jupyter. Chaque concept est immédiatement mis en application. J'attache une attention particulière à ce que chaque participant suive, quel que soit son niveau initial, et je calibre la profondeur de chaque sujet en fonction du groupe.
Les supports sont fournis aux participants à l'issue de la formation, accompagnés des notebooks d'exercices corrigés.
Documentation officielle
Polars, Numba, module multiprocessing (Python 3), format Apache Parquet.
Questions fréquentes
Polars remplace-t-il complètement Pandas ?
Polars est aujourd'hui le meilleur choix pour passer un pipeline data du prototype à la production. La formation couvre la migration de Pandas vers Polars avec les stratégies et équivalences. En pratique, beaucoup d'équipes maintiennent les deux pendant une période de transition — la formation prépare à gérer cette coexistence.
Qu'est-ce que le streaming engine de Polars et quand en a-t-on besoin ?
Le streaming engine de Polars permet de traiter des datasets qui dépassent la RAM disponible en traitant les données par blocs de façon transparente. C'est traité en module 1. Cas typique : un fichier Parquet de 200 Go sur une machine avec 32 Go de RAM.
Quelle est la différence entre Numba et multiprocessing, et quand choisir l'un ou l'autre ?
Numba accélère des calculs numériques intensifs par compilation JIT — utile pour des boucles ou des fonctions NumPy. Multiprocessing parallélise des tâches indépendantes en contournant le GIL Python — utile pour des traitements CPU-bound de type "map". Le module 3 traite explicitement la comparaison et les critères de choix.
Faut-il avoir suivi la formation niveau 1 avant celle-ci ?
La formation niveau 2 suppose une maîtrise intermédiaire de Python et une pratique de Pandas/NumPy. La formation Python data science niveau 1 est la suite logique naturelle, mais un niveau équivalent acquis par la pratique convient également.
Cette formation est-elle adaptée à des chercheurs qui traitent de gros volumes de données ?
Oui, c'est précisément le public visé. Le formateur utilise Polars quotidiennement dans ses propres travaux de recherche, notamment pour analyser 16,5 milliards de transactions Bitcoin sur fichiers Parquet partitionnés — la formation est construite à partir de cette pratique réelle.
Le format distanciel est-il adapté à ce type de formation ?
Oui. 90 % des participants jugent le format distanciel équivalent ou supérieur au présentiel. J'anime des formations à distance depuis 2020 et j'ai développé une pratique solide de l'enseignement en ligne. J'utilise Zoom, qui permet d'enregistrer les sessions et de les mettre à disposition des participants si souhaité, et CoCalc, une plateforme en ligne qui donne accès à des serveurs pré-configurés avec l'ensemble du matériel de formation et des librairies installées. CoCalc me permet également de suivre en temps réel la progression de chaque participant et d'intervenir directement pour corriger ou débloquer.