~/wiki

Jupyter Notebook

Mis à jour le 2026-08-08Confiance : medium
jupyternotebookpythondata-scienceipynbrepl

Jupyter fonctionne en deux modes : Édition (dans une cellule) et Commande (entre cellules). Échap bascule en mode commande, Entrée revient en édition.

Raccourcis essentiels

Le réflexe à prendre : Échap, B, puis Shift + Entrée — nouvelle cellule, exécution, passage à la suivante.

Action Raccourci
Exécuter et aller à la cellule suivante Shift + Entrée
Exécuter sans bouger Cmd + Entrée
Exécuter et créer une cellule dessous Option + Entrée
Créer une cellule au-dessus Échap, puis A
Créer une cellule en dessous Échap, puis B
Supprimer la cellule Échap, puis D, D
Copier / couper / coller une cellule Échap, puis C / X / V
Annuler la suppression Échap, puis Z
Transformer en cellule Markdown Échap, puis M
Transformer en cellule Code Échap, puis Y
Naviguer entre cellules Échap, puis ↑ / ↓

Magics utiles

%time ma_fonction()          # Temps d'une instruction
%timeit ma_fonction()        # Moyenne sur plusieurs exécutions
%%time                       # Temps de toute la cellule
%load_ext autoreload
%autoreload 2                # Recharger les modules modifiés
%matplotlib inline           # Afficher les plots inline
%pdb                         # Debugger automatique sur erreur
!pip install package         # Commande shell

Afficher plusieurs résultats

Par défaut, seule la dernière expression s'affiche.

from IPython.display import display

display(df.head())
display(df.describe())

Éviter le scroll infini

import pandas as pd
pd.set_option('display.max_rows', 50)

Redémarrer le kernel

Échap, puis 0, 0 redémarre le kernel. Utile quand l'état est cassé.

Convertir en script

jupyter nbconvert --to script notebook.ipynb

Extensions JupyterLab

pip install jupyterlab-code-formatter black isort

Permet de formater le code avec Cmd + Shift + F.

Variables d'environnement et secrets

from dotenv import load_dotenv, dotenv_values, find_dotenv
import os

# Charger automatiquement le .env trouvé
load_dotenv()

# Charger un fichier précis
load_dotenv(".env")
load_dotenv("/chemin/vers/.env")

# Recharger en remplaçant les valeurs déjà présentes dans le kernel
load_dotenv(".env", override=True)

.env = fichier sur disque ; os.environ = variables actuellement en mémoire dans le kernel. load_dotenv(..., override=True) copie le premier vers le second en remplaçant les valeurs existantes.

# Trouver le .env réellement utilisé
env_path = find_dotenv(usecwd=True)
print(env_path)

# Lire le fichier sans modifier l'environnement du notebook
env_vars = dotenv_values(".env")
print(env_vars.keys())

# Vérifier les noms et la présence des valeurs sans afficher les secrets
for name, value in dotenv_values(".env").items():
    print(f"{name}: {'définie' if value else 'vide'}")
# Lire une variable chargée
api_key = os.environ.get("GOOGLE_API_KEY")

# Vérifier une variable sans révéler sa valeur
print(bool(os.environ.get("GOOGLE_API_KEY")))

# Définir ou modifier temporairement une variable dans le notebook
os.environ["GOOGLE_API_KEY"] = "nouvelle_valeur"

# Supprimer une variable du kernel actuel
os.environ.pop("GOOGLE_API_KEY", None)

Variables d'environnement

%env

Liste toutes les variables d'environnement. À éviter si tu as des clés secrètes.

%env GOOGLE_API_KEY

Affiche la valeur d'une variable précise — à éviter aussi pour une clé.

%env MODE=development

Crée ou remplace une variable dans le kernel.

%env MODE development

Même résultat, avec un espace au lieu de =.

my_value = "development"
%env MODE=$my_value

Copie la valeur d'une variable Python dans une variable d'environnement.

%env?

Affiche l'aide exacte de ta version.

Introspection avec ? et ??

objet?

Affiche l'aide : documentation, signature et type.

len?
get_current_weather?
PolygonToolkit?

Pour une fonction, tu verras ses arguments et sa docstring.

objet??

Fait la même chose, mais essaie aussi d'afficher le code source Python.

get_current_weather??

Très pratique pour tes propres fonctions, ou pour comprendre une fonction d'une librairie.

Le code source peut ne pas apparaître si l'objet est écrit en C, compilé, ou si le package ne fournit pas les sources (list?? par exemple).

Recherche

# Recherche les objets dont le nom contient "embed"
*embed*?
# Avec un import récent
from langchain_community.agent_toolkits.polygon.toolkit import PolygonToolkit

PolygonToolkit?
PolygonToolkit.from_polygon_api_wrapper?

À retenir : ? = comprendre comment utiliser ; ?? = essayer de voir comment c'est construit.

See also

python-requests pandas numpy pytorch keras-tensorflow