Partie A : Expertise en Analyse de Données (1,5 jour)
NumPy : Calculs Numériques
- Les Arrays (tableaux multidimensionnels).
- Calcul vectoriel et matriciel.
- Opérations performantes.
Utiliser NumPy pour effectuer des calculs lourds de manière optimisée et efficace.
Pandas : Manipulation de Données
- Les DataFrames (lecture CSV, Excel, JSON).
- Indexation et Slicing avancés.
- Nettoyage et préparation de données (valeurs manquantes, types).
Manipuler, nettoyer et transformer des jeux de données volumineux pour les préparer à l'analyse ou à la modélisation.
Agrégation et Jointures
- Regroupement de données (groupby).
- Jointures et fusions de DataFrames.
- Création de nouvelles colonnes.
Réaliser des analyses statistiques de base et fusionner différentes sources de données.
Visualisation
- Introduction aux librairies Matplotlib/Seaborn.
- Création des graphiques de base (histogrammes, nuages de points).
Savoir visualiser ses données pour une meilleure compréhension et communication des résultats.
Partie B : Fondations Avancées du Langage (1 jour)
Fonctions Avancées
- Decorateurs (création et usage), Fermeture (closure).
- Générateurs et Fonctions génératrices (yield pour l'optimisation mémoire).
Écrire du code plus compact, modulaire et optimisé en termes de mémoire (Générateurs).
Programmation Objet Avancée
- Propriétés (@property).
- Héritage multiple (MRO).
- Les méthodes DUNDER (__str__, __eq__, etc.).
Maîtriser les mécanismes avancés de l'OOP pour créer des classes puissantes et conformes aux conventions Python.
Context Managers
- Le protocole __enter__ et __exit__.
- Utilisation du mot-clé with.
- Création d'un Context Manager personnalisé.
Gérer correctement les ouvertures et fermetures de ressources (fichiers, connexions DB) de manière automatique et sécurisée.
Partie C : Industrialisation, Performance et Parallélisme (1,5 jour)
Gestion de Projet Avancée
- Poetry, PDM, Hatch : gestion des dépendances et packaging.
- Publication de librairies.
Mettre en place un projet robuste et facilement déployable.
Performance et Profiling
- Outils de Profiling (détection des goulots d'étranglement).
- Techniques d'optimisation de code.
Identifier les parties lentes du code et les optimiser pour améliorer la vitesse d'exécution.
Bases de Données et ORM
- Connexion à une base de données relationnelle via SQLAlchemy.
- Introduction aux bases de données NoSQL (ex: MongoDB).
Interagir avec des bases de données de manière orientée objet sans écrire directement de SQL complexe.
Concurrence et Asynchrone
- Multithreading vs. Multiprocessing.
- Programmation asynchrone avec Asyncio (async/await) : gestion des I/O non bloquantes.
Améliorer la réactivité et le débit des applications en gérant plusieurs tâches "simultanément".
Développement Web / API (Intro)
- Introduction au développement d'API avec FastAPI.
- Définition de routes simples.
- Sérialisation des données.
Exposer des fonctionnalités Python (y compris des résultats d'analyse de données) sous forme d'API web moderne.