Raccourcis courants et astuces pratiques pour Jupyter Notebook
Jupyter Notebook est l'environnement de développement interactif le plus populaire en science des données et en apprentissage automatique. Maîtriser ses raccourcis et astuces peut considérablement améliorer l'efficacité de développement quotidienne.
Vous pouvez cliquer sur le menu Help pour afficher les raccourcis :


Tous les raccourcis de cet article sont basés surWindows/Linuxcomme référence. Les utilisateurs de Mac doivent remplacer
CtrlwithCmd, et remplacerAltwithOption。
Deux modes de fonctionnement
Jupyter Notebook a deux modes,tous les raccourcis dépendent du mode actuel, ce qui est le point clé que la plupart des débutants négligent :
| Mode | Couleur de bordure de cellule | Comment y accéder | Fonction |
|---|---|---|---|
| Mode commande | Bleu | appuyezEscou cliquez sur la zone vide à gauche de la cellule |
Gérer les cellules (ajouter, supprimer, déplacer, etc.) |
| Mode édition | Vert | appuyezEnterou double-cliquez à l'intérieur de la cellule |
Écrire et modifier du code ou du texte dans une cellule |
Moyen mnémotechnique rapide :Vert = peut saisir et modifier ; Bleu = peut gérer les cellules. Avant d'entrer en mode édition, utilisez d'abordEscpour quitter, puis utilisezEnterpour entrer. Adopter cette habitude permet d'éviter de nombreuses opérations accidentelles.
Raccourcis pour exécuter des Cellules (universels)
Les trois raccourcis suivants peuvent être utilisés dans les deux modes. Ce sont les opérations les plus fréquentes, alors assurez-vous de les mémoriser :
| Raccourci | Fonction | Scénario d'application |
|---|---|---|
Shift + Enter |
Exécuter la cellule actuelle et passer automatiquement à la cellule suivante | Le plus courant, exécuter le code séquentiellement vers le bas |
Ctrl + Enter |
Exécuter la cellule actuelle et rester sur la cellule actuelle | À utiliser lors de tests répétés du même code |
Alt + Enter |
Exécuter la cellule actuelle et insérer une nouvelle cellule en dessous | À utiliser lors de l'ajout de blocs de code vers le bas pendant l'exécution |
Raccourcis du mode commande (bordure bleue)
appuyezEscAprès être entré en mode commande, vous pouvez utiliser les raccourcis suivants :
1. Insertion et suppression de Cellules
| Raccourci | Fonction |
|---|---|
A |
À la Cellule actuelleAu-dessusInsérer une nouvelle Cellule (Au-dessus) |
B |
À la Cellule actuelleEn dessousInsérer une nouvelle Cellule (En dessous) |
D, D(Appuyer deux fois sur D) |
Supprimer la Cellule actuelle |
Z |
Annuler la suppression (restaurer la Cellule qui vient d'être supprimée) |
X |
Couper la Cellule actuelle |
C |
Copier la Cellule actuelle |
V |
Coller une Cellule en dessous de la Cellule actuelle |
Shift + V |
Coller une Cellule au-dessus de la Cellule actuelle |
2. Changement de type de Cellule
Les Cellules dans Jupyter ont trois types, qui peuvent être changés à tout moment :
| Raccourci | Passer à | Objectif |
|---|---|---|
Y |
Code | Écrire et exécuter du code Python |
M |
Markdown (langage de balisage) | Écrire de la documentation mise en forme, des titres, des descriptions |
R |
Brut (texte brut) | Afficher le texte tel quel, sans l'exécuter ni le rendre |
1 ~ 6 |
Niveaux de titre Markdown H1 ~ H6 | Définir rapidement la cellule au niveau de titre correspondant (bascule automatiquement en mode Markdown) |
3. Sélectionner et fusionner des cellules
| Raccourci | Fonction |
|---|---|
↑ / K |
Sélectionner la cellule au-dessus |
↓ / J |
Sélectionner la cellule en dessous |
Shift + ↑ / Shift + K |
Sélectionner plusieurs cellules vers le haut (en continu) |
Shift + ↓ / Shift + J |
Sélectionner plusieurs cellules vers le bas (en continu) |
Shift + M |
Fusionner les cellules sélectionnées en une seule |
4. Contrôle de la sortie et de l'affichage
| Raccourci | Fonction |
|---|---|
O |
Réduire/développer la sortie de la cellule actuelle |
Shift + O |
Activer/désactiver le mode de défilement pour la zone de sortie de la cellule actuelle (à utiliser lorsque le contenu de sortie est très long) |
L |
Afficher/masquer les numéros de ligne pour la cellule actuelle |
F |
Rechercher et remplacer du texte dans la cellule |
5. Opérations sur le noyau et l'interface
| Raccourci | Fonction |
|---|---|
I, I(Appuyez deux fois sur I) |
Interrompre la cellule en cours d'exécution (équivalent à Ctrl+C) |
0, 0(Appuyez deux fois sur 0) |
Redémarrer le noyau (cela effacera toutes les variables exécutées,à utiliser avec prudence) |
H |
Ouvrir le panneau d'aide des raccourcis (affiche tous les raccourcis disponibles) |
P |
Ouvrir la palette de commandes pour rechercher toutes les fonctions Jupyter |
Space |
Faire défiler la page vers le bas |
Shift + Space |
Faire défiler la page vers le haut |
S / Ctrl + S |
Enregistrer le Notebook |
Raccourcis du mode édition (bordure verte)
appuyezEnterAprès être entré en mode édition, vous pouvez utiliser les raccourcis suivants pour agir à l'intérieur d'une cellule :
1. Édition de code
| Raccourci | Fonction |
|---|---|
Tab |
Auto-complétion du code (saisissez une partie du nom d'une fonction/variable puis appuyez sur Tab pour compléter) |
Shift + Tab |
Afficher la description des paramètres de la fonction au niveau du curseur (affiche une infobulle de documentation ; appuyez une fois pour un bref résumé, deux fois pour la documentation complète) |
Ctrl + / |
Commenter/décommenter la ligne actuelle ou plusieurs lignes de code sélectionnées |
Ctrl + D |
Supprimer toute la ligne actuelle |
Ctrl + Shift + - |
Diviser la cellule actuelle en deux cellules au niveau du curseur |
Ctrl + Z |
Annuler (restaurer la modification précédente) |
Ctrl + Y |
Rétablir (annuler l'annulation) |
Ctrl + A |
Sélectionner tout le contenu de la cellule actuelle |
Ctrl + Home |
Aller au tout début du contenu de la cellule |
Ctrl + End |
Aller à la toute fin du contenu de la cellule |
Ctrl + ← / Ctrl + → |
Déplacer le curseur mot par mot (se déplacer rapidement vers le mot précédent/suivant) |
2. Revenir du mode édition au mode commande
| Raccourci | Fonction |
|---|---|
Esc |
Quitter le mode édition, revenir au mode commande (la bordure de la cellule devient bleue) |
Ctrl + M |
Identique à Esc, quitter le mode édition |
Commandes magiques
Les commandes magiques sont des directives Jupyter intégrées spéciales qui commencent par%(ligne unique) ou%%(cellule entière), utilisées pour accomplir des tâches courantes telles que la mesure du temps, le débogage, les opérations sur les fichiers, etc.Elles peuvent être utilisées sans installer de bibliothèques.。
1. Chronométrage du code
Exemple
%timeit [x**2 for x in range(1000)]
# Exemple de sortie : 98.3 µs ± 1.2 µs par boucle (moyenne ± écart-type de 7 exécutions, 10000 boucles chacune)
# %%time : chronomètre une fois le code de toute la cellule (adapté pour tester des processus complets qui prennent beaucoup de temps)
%%time
import time
data = [x**2 for x in range(100000)]
time.sleep(1)
# Exemple de sortie :
# Temps CPU : utilisateur 45.2 ms, système 8.1 ms, total 53.3 ms
# Temps réel : 1.05 s
2. Affichage en ligne des graphiques
Exemple
# Généralement placé dans la première cellule du Notebook ; ne doit être exécuté qu'une seule fois pour l'ensemble du Notebook
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 100)
plt.plot(x, np.sin(x))
plt.title('onde sinusoïdale')
plt.show()
# %matplotlib notebook : active des graphiques interactifs qui peuvent être zoomés et déplacés (mais ne peut pas être utilisé en même temps que inline)
# %matplotlib notebook
3. Affichage et gestion des variables
Exemple
%who
# Exemple de sortie : data plt x
# %whos : plus détaillé que %who, affiche aussi le type et la valeur des variables
%whos
# Exemple de sortie :
# Variable Type Données/Info
# ----------------------------
# x ndarray 100: [0. 0.06 ... 6.28]
# data list n=100000
# %reset : efface toutes les variables (affiche une invite de confirmation ; convient lorsqu'on redémarre les calculs)
%reset
# %reset -f : efface de force toutes les variables sans invite de confirmation (-f signifie forcer)
%reset -f
4. Opérations sur les fichiers et les chemins
Exemple
%pwd
# Exemple de sortie : '/home/user/notebooks'
# %ls : liste tous les fichiers du répertoire courant (les utilisateurs Windows peuvent avoir besoin d'utiliser %ls ou directement utiliser !dir)
%ls
# Exemple de sortie : data.csv model.py notebook.ipynb
# %%writefile : écrit le contenu de toute la cellule dans un fichier spécifié (couramment utilisé pour créer rapidement des fichiers de script)
%%writefile hello.py
def greet(name):
print(f"Bonjour, {name}!")
greet("World")
# Après exécution, un fichier hello.py est généré dans le répertoire courant, contenant le code de la cellule
# %run : exécute un fichier de script Python externe et importe ses variables dans l'espace de noms courant
%run hello.py
# Sortie : Hello, world!
# %load : charge le contenu d'un fichier de script externe dans la cellule courante (ne l'exécute pas automatiquement ; charge uniquement le code)
%loadpy
5. 执行系统命令
Exemple
!pip install # 安装
!pip list # 查看列表
!python --version # 查看 Python 版本
# 你也可以将命令的输出保存为 Python 变量
files = !ls -1 # 执行 ls 命令并将结果赋值给变量 files
print(files) # files 是一个列表,其中每个文件名都是一个元素
6. 查看历史记录与调试
Exemple
%history
# L'ajout de -n affiche les numéros de ligne ; l'ajout de -l 5 affiche uniquement les 5 entrées les plus récentes
%history -n -l 5
# %debug : après qu'un code signale une erreur, exécuter %debug dans la cellule suivante entre en mode de débogage interactif
# En mode de débogage, vous pouvez saisir des noms de variables pour afficher les valeurs, et saisir q pour quitter le débogage
# Par exemple, après avoir exécuté un morceau de code qui a provoqué une erreur :
%debug
7. Rendu de contenu spécial
Exemple
%%html
<h3 style="color: steelblue;">Ceci est un titre HTML</h3>
<p style="font-size: 16px;">Le contenu HTML peut être rendu directement dans le Notebook.</p>
# %%latex : rend le contenu de la cellule en formule LaTeX (souvent utilisé pour écrire des formules mathématiques)
%%latex
$$E = mc^2$$
$$\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$
Afficher la progression en cours en temps réel
Lors du traitement de grandes quantités de données ou de l'exécution de longues boucles, il est très important de visualiser la progression en temps réel. Voici plusieurs solutions d'affichage de progression couramment utilisées.
1. Barre de progression tqdm (recommandée)
tqdm est la bibliothèque de barres de progression la plus couramment utilisée, prenant en charge les boucles, Pandas et divers scénarios Jupyter. Commande d'installation :
pip install tqdm
Exemple
import time
# Utilisation de base : encapsulez un objet itérable dans tqdm() pour afficher automatiquement une barre de progression
for i in tqdm(range(100)):
time.sleep(0.05) # Simulez une opération chronophage
# Sortie : affiche la barre de progression, le pourcentage d'achèvement, le temps écoulé, le temps restant estimé
# À utiliser avec enumerate
data = list(range(50))
for i, item in enumerate(tqdm(data, desc="Traitement des données")):
# Le paramètre desc définit le texte du libellé sur le côté gauche de la barre de progression
time.sleep(0.05)
# Contrôler manuellement la progression (adapté aux scénarios où le total est incertain)
with tqdm(total=100, desc="Progression du téléchargement") as pbar:
for chunk in range(10):
time.sleep(0.1)
pbar.update(10) # Mettre à jour la progression de 10 unités à chaque fois
pbar.set_postfix({"lot": chunk}) # Afficher des informations supplémentaires sur le côté droit de la barre de progression
Exemple
import pandas as pd
from tqdm.notebook import tqdm
tqdm.pandas() # Activer l'intégration Pandas ; ne doit être exécutée qu'une seule fois
df = pd.DataFrame({'value': range(1000)})
# Utiliser progress_apply au lieu de apply ordinaire pour afficher automatiquement la progression
result = df['value'].progress_apply(lambda x: x ** 2)
2. display + clear_output : rafraîchissement dynamique de la sortie
Lorsque vous ne voulez pas installer tqdm, vous pouvez utiliser la fonction intégrée d'IPythonclear_outputpour obtenir des effets de rafraîchissement dynamique :
Exemple
import time
total = 50
for i in range(total):
time.sleep(0.1)
# clear_output(wait=True) : efface la sortie précédente ; wait=True signifie attendre que le nouveau contenu soit disponible avant d'effacer,
# pour éviter le scintillement. Remarque : cela efface toute la sortie de la cellule actuelle
clear_output(wait=True)
# Dessiner manuellement une simple barre de progression textuelle
done = int((i + 1) / total * 30) # Calculer le nombre de cellules terminées (30 cellules au total)
bar = '█' * done + '░' * (30 - done) # █ signifie terminé, ░ signifie non terminé
pct = (i + 1) / total * 100
print(f"Progression : [{bar}] {pct:.1f}% ({i+1}/{total})")
print("✅ Tout est terminé !")
3. Progression du dessin de graphique en temps réel
Dans des scénarios tels que l'entraînement de modèles, vous pouvez mettre à jour dynamiquement les graphiques à intervalles réguliers pour observer les tendances des métriques en temps réel :
Exemple
import matplotlib.pyplot as plt
from IPython.display import clear_output, display
import numpy as np
import time
losses = [] # Stocker la valeur de perte de chaque étape pour simuler le processus d'entraînement
for step in range(50):
# Simuler l'entraînement : générer une valeur de perte qui diminue progressivement
loss = 1 / (step + 1) + np.random.uniform(0, 0.05)
losses.append(loss)
# Mettre à jour le graphique toutes les 5 étapes pour éviter de rafraîchir trop fréquemment
if (step + 1) % 5 == 0:
clear_output(wait=True)
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(losses, color='steelblue', linewidth=2)
ax.set_title(f'Progression de l’entraînement (Étape {step + 1}/50)')
ax.set_xlabel('Étape')
ax.set_ylabel('Perte')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show() # Appeler show après clear_output, et le graphique se rafraîchira au même endroit
time.sleep(0.1)
print("Entraînement terminé ! Perte finale :", f"{losses[-1]:.4f}")
Conseils pour consulter la documentation et le code
1. Consulter rapidement la documentation d'une fonction
Exemple
import numpy as np
np.array?
# Cela fait apparaître la description des paramètres et la description fonctionnelle de np.array
# Méthode 2 : ajouter ?? après le nom de la fonction pour faire apparaître la documentation complète, y compris le code source (si la source est disponible)
np.array??
# Méthode 3 : appuyez sur Shift + Tab à l'intérieur des parenthèses de la fonction
# Par exemple, après avoir tapé np.linspace( (à l'intérieur des parenthèses), appuyez sur Shift + Tab pour faire apparaître des indications sur les paramètres
# Appuyez deux fois sur Shift + Tab pour afficher une documentation plus complète
# Méthode 4 : utiliser la fonction help() (la sortie est plus complète, mais affichée dans la zone de sortie plutôt que dans une fenêtre contextuelle)
help(np.array)
2. Utiliser display pour afficher plusieurs résultats de sortie
Par défaut, Jupyter affiche uniquement la valeur de la dernière expression de chaque Cell. Grâce àdisplay()vous pouvez afficher plusieurs résultats dans une seule Cell :
Exemple
from IPython.display import display
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'X': [7, 8, 9], 'Y': [10, 11, 12]})
# Sans display, seul le dernier DataFrame est affiché
# df1 # ne sera pas affiché
# df2 # Seul celui-ci s'affichera
# L'utilisation de display() permet d'afficher plusieurs tableaux à la fois, avec une belle mise en forme
display(df1)
display(df2)
Exemple
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all" # La valeur par défaut est "last_expr" ; après avoir changé en "all"
# Chaque expression dans la cellule affichera automatiquement son résultat
1 + 1 # Affiche 2
2 + 2 # Affiche 4 (par défaut, cette ligne n'affichera rien)
"hello" # Affiche 'hello'
3. Supprimer les sorties indésirables
Exemple
import numpy as np
# Problème : plt.plot() affichera une description d'objet supplémentaire lors de l'affichage du graphique, comme :
# [<matplotlib.lines.Line2D object at 0x7f3b1234>]
# Solution : ajouter un point-virgule (;) à la fin de l'instruction pour supprimer la sortie de la dernière expression sans affecter l'affichage du graphique
plt.plot(np.sin(np.linspace(0, 2*np.pi, 100)));
# Après avoir ajouté le point-virgule, le graphique s'affiche normalement, mais la description d'objet supplémentaire n'apparaîtra pas
Autres conseils pratiques
1. Afficher les valeurs intermédiaires des variables (sans interrompre l'exécution du code)
Exemple
# Tout en affectant le résultat intermédiaire à une variable, mettez toute la ligne entre parenthèses pour qu'elle s'affiche
import numpy as np
# Manière normale (impossible de voir la valeur de result)
result = np.array([1, 2, 3]) * 2
# Manière avec parenthèses (affiche la valeur de result pendant l'affectation)
(result := np.array([1, 2, 3]) * 2) # Approche avec l'opérateur walrus de Python 3.8+
# Sortie : array([2, 4, 6])
# Ou plus simple : écrivez simplement le nom de la variable sur une nouvelle ligne après l'affectation
result = np.array([1, 2, 3]) * 2
result # Jupyter affichera automatiquement la valeur de la dernière expression
2. Référencer le résultat de sortie précédent
Exemple
# _ : Résultat de sortie de la cellule précédente
# __ : Résultat de sortie de l'avant-dernière cellule
# _3 : Résultat de sortie de la 3e cellule (Out
# Par exemple :
1 + 1
# Out[1]: 2
_ # Référencez la sortie précédente, la valeur est 2
# Out[2]: 2
_ * 10 # Utilisez la sortie précédente pour continuer le calcul
# Out[3]: 20
_3 + 5 # Référencez le résultat 20 de Out
# Out[4]: 25
3. Afficher du contenu en texte enrichi dans le Notebook
Exemple
# Afficher du texte formaté Markdown
display(Markdown("## This is a heading\n\n**bold text**, *italic text*, `code`"))
# Afficher HTML
display(HTML("<span style='color:red; font-size:20px'>Big red text</span>"))
# Afficher une image réseau (passer l'URL de l'image)
display(Image(url="https://www.example.com/images/example-logo.png", width=200))
# Afficher une image locale (passer le chemin du fichier local)
# display(Image(filename="./chart.png"))
4. Ajouter des annotations de chronométrage aux cellules (afficher automatiquement le temps écoulé dans la sortie)
Exemple
# pip install jupyter-contrib-nbextensions
# Solution simple : utiliser un décorateur ou un gestionnaire de contexte pour encapsuler la logique de chronométrage, utilisable dans n'importe quel bloc de code
import time
from contextlib import contextmanager
@contextmanager
def timer(label="Temps écoulé"):
start = time.time()
try:
yield
finally:
elapsed = time.time() - start
print(f"⏱ {label}: {elapsed:.3f} seconds")
# Utilisation : enveloppez n'importe quel bloc de code avec with timer():, et le temps écoulé sera automatiquement affiché après l'exécution
with timer("Traitement des données"):
data = [x ** 2 for x in range(1000000)]
# Sortie : ⏱ Traitement des données : 0.087 seconds
5. Afficher rapidement tous les raccourcis du Notebook actuel
En mode commande (bordure bleue), appuyez surH, ou via le menuAide → Raccourcis clavier, pour ouvrir le panneau d'aide complet sur les raccourcis et consulter toutes les opérations disponibles à tout moment.
Tableau de référence rapide des raccourcis clavier courants
| Opération | Raccourci | Mode |
|---|---|---|
| Exécuter la cellule et passer à la suivante | Shift + Enter |
Général |
| Exécuter la cellule et rester sur place | Ctrl + Enter |
Général |
| Exécuter la cellule et en créer une nouvelle en dessous | Alt + Enter |
Général |
| Passer en mode édition | Enter |
Mode commande |
| Quitter le mode édition | Esc |
Mode édition |
| Insérer une cellule au-dessus | A |
Mode commande |
| Insérer une cellule en dessous | B |
Mode commande |
| Supprimer la cellule | D, D |
Mode commande |
| Annuler la suppression de la cellule | Z |
Mode commande |
| Basculer vers une cellule de code | Y |
Mode commande |
| Basculer vers une cellule Markdown | M |
Mode commande |
| Fusionner plusieurs cellules sélectionnées | Shift + M |
Mode commande |
| Interrompre le noyau (arrêter l'exécution) | I, I |
Mode commande |
| Redémarrer le noyau | 0, 0 |
Mode commande |
| Afficher l'aide des raccourcis | H |
Mode commande |
| Auto-complétion de code | Tab |
Mode édition |
| Afficher les paramètres/la documentation de la fonction | Shift + Tab |
Mode édition |
| Commenter/décommenter | Ctrl + / |
Mode édition |
| Diviser la cellule au niveau du curseur | Ctrl + Shift + - |
Mode édition |
| Enregistrer le Notebook | S / Ctrl + S |
Mode commande / Mode édition |