Section 11.2.18 : Jupyter Notebooks — L'environnement de la data science
🎯 Objectif pédagogique
Utiliser Jupyter Notebooks pour l'analyse de données interactive. Vous serez capable de mélanger code, visualisations et texte explicatif dans un seul document — l'outil standard de la data science.
Jupyter — L'outil qui a révolutionné la data science
Si VS Code est l'IDE du développeur web, Jupyter Notebook est l'IDE du data scientist. Son innovation : mélanger code exécutable, résultats (graphiques, tableaux), et texte Markdown dans un seul document interactif.
Marc : "C'est comme un cahier de lab : j'écris une hypothèse, je teste avec du code, je vois le résultat immédiatement, et je note mes conclusions. Tout au même endroit."
Installation et lancement
# Installation
pip install jupyter notebook
# Ou JupyterLab (version moderne)
pip install jupyterlab
# Lancer
jupyter notebook # Interface classique
jupyter lab # Interface moderne (recommandé)
# Ou directement dans VS Code
# Extension : "Jupyter" (Microsoft)
Structure d'un notebook
Un notebook est composé de cellules de deux types :
- →Cellule Code : du Python exécutable (Shift+Enter pour exécuter)
- →Cellule Markdown : du texte formaté (titres, listes, formules LaTeX)
# Cellule 1 : Import et chargement
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv("applications.csv")
df.head()
# → Le tableau s'affiche directement sous la cellule !
# Cellule 2 : Analyse
print(f"Total candidatures: \{len(df)\}")
print(f"Taux d'entretien: \{len(df[df['status']=='interview'])/len(df)*100:.1f\}%")
# Cellule 3 : Graphique
plt.figure(figsize=(8, 5))
df['status'].value_counts().plot(kind='bar', color='#0891b2')
plt.title("Candidatures par statut")
plt.show()
# → Le graphique s'affiche directement !
Magic commands
# Mesurer le temps d'exécution
%timeit df.groupby('status')['salary'].mean()
# 1.2 ms ± 45 μs per loop
# Temps total d'une cellule
%%timeit
df_clean = df.dropna()
result = df_clean.groupby('status')['salary'].mean()
# Afficher les graphiques inline
%matplotlib inline
# Variables en mémoire
%who # Liste des variables
%whos # Détails (type, taille)
# Réexécuter un module modifié
%reload_ext autoreload
%autoreload 2
# Exécuter un fichier .py
%run script.py
Bonnes pratiques Jupyter
# Structure recommandée d'un notebook d'analyse :
# 1. En-tête (Markdown)
# # Analyse des candidatures — Mars 2026
# **Auteur**: Marc Dupont | **Date**: 2026-03-15
# **Objectif**: Identifier les facteurs de succès des candidatures
# 2. Setup (Code)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="whitegrid")
plt.rcParams['figure.figsize'] = (10, 6)
# 3. Chargement des données
df = pd.read_csv("data.csv")
# 4. EDA (plusieurs cellules code + markdown)
# 5. Analyse approfondie
# 6. Conclusions (Markdown)
# ## Conclusions
# 1. Le taux de conversion est de 7%
# 2. Les candidatures ciblées convertissent 3x mieux
# ## Recommandations
# - Réduire le volume, augmenter la qualité
| À faire | À éviter |
|---|---|
| Exécuter les cellules dans l'ordre | Exécuter dans le désordre (état incohérent) |
| Redémarrer le kernel régulièrement | Accumuler des variables obsolètes |
| Un but par cellule | Cellules de 100+ lignes |
| Markdown entre les sections | Code sans explication |
| Sauvegarder en .py aussi | Dépendre uniquement du .ipynb |
De Jupyter à un script Python
# Convertir un notebook en script Python
jupyter nbconvert --to script analysis.ipynb
# Convertir en HTML (pour partager)
jupyter nbconvert --to html analysis.ipynb
# Convertir en PDF
jupyter nbconvert --to pdf analysis.ipynb
Jupyter vs VS Code pour la data
Jupyter : exploration, prototypage rapide, présentation de résultats. Parfait pour l'EDA et les rapports. VS Code : production, projets structurés, debugging avancé. Parfait pour les scripts et les applications. En pratique : explorez en Jupyter, déployez depuis VS Code. VS Code supporte aussi les notebooks (.ipynb) via l'extension Jupyter.
🏋️ Exercice pratique (20 minutes)
- →Créez un nouveau Jupyter Notebook
- →Structurez-le avec des cellules Markdown (titre, sections)
- →Chargez vos données de candidatures
- →Faites un mini-EDA en 5 cellules
- →Ajoutez des conclusions en Markdown
- →Exportez en HTML
Quel est l'avantage principal de Jupyter par rapport à un script .py pour l'analyse de données ?
Pourquoi est-il recommandé de redémarrer le kernel Jupyter régulièrement ?