5.2 KiB
title, author
title | author |
---|---|
Jupyter | Steve Kossouho |
Jupyter
Qu'est-ce que Jupyter ?
Jupyter est un serveur web proposant une interface de console interactive Python avancée. Le projet trouve ses origines dans le projet ipython
, qui est une console interactive avancée pour terminal.
ipython
a été créé par Fernando Pérez en 2001. L'outil interactif web associé, ipython
notebook, a été créé fin 2011. Ce n'est qu'en 2014 que ce projet a été extrait du projet IPython
pour devenir Jupyter.
Jupyter est très utilisé par des professionnels pratiquant l'analyse de données, car il est pratique via son interface d'itérer et de tester des choses simples.
Avantages de Jupyter pour l'analyse de données
Grâce à son interface présentée en cahier modulaire, il est très pratique de rédiger des bouts de code plus ou moins indépendants les uns des autres. Il est même possible de rédiger des blocs de texte pour annoter des carnets Jupyter (au format Markdown).
L'avantage visuel de Jupyter par rapport à l'exécution de scripts complets est que la sortie d'exécution d'une cellule de code apparaît directement dans l'interface, sous la zone de code exécutée.
Les professionnels voulant réaliser des scripts simples pour traiter des données d'entrée auront ainsi la facilité de vérifier si une portion de leur code pose problème.
Installation et démarrage de Jupyter
Pour installer et lancer Jupyter sur sa propre machine, il faut installer un paquet avec pip
:
pip install jupyter
Une solution plus avancée que Jupyter peut être alternativement installée; elle propose des fonctionnalités supplémentaires, ainsi qu'une interface plus avancée et plus proche de celle d'un IDE comme PyCharm :
pip install jupyterlab
Démarrer Jupyter ou Jupyterlab
Une fois la bibliothèque de votre choix installée, vous pouvez démarrer un serveur de carnets via une des commandes suivantes :
jupyter notebook # nécessite d'installer jupyter
jupyter-lab # nécessite d'installer jupyterlab
Interface de Jupyter, cellules et kernel
Jupyter vous permet de créer facilement, dans un carnet, des zones indépendantes, dans lesquelles vous pouvez saisir du code, ou bien du texte au format Markdown.
Kernel
Un Kernel Jupyter est un environnement d'exécution avec lequel Jupyter est capable de communiquer, pour exécuter des bouts de code entre autres.
Le Kernel le plus connu est fourni par la bibliothèque ipython
; il communique avec l'application Jupyter via un protocole réseau
fourni par une application nommée ZeroMQ, et fournit une console interactive Python. Les variables qui sont créées pendant son exécution restent disponibles pendant toute la durée de vie du kernel.
Raccourcis clavier utiles de Jupyter
Il existe deux endroits pour envoyer des raccourcis clavier à Jupyter :
- L'édition d'une cellule (presser
[Entrée]
) - L'interface générale (presser
[ESC]
)
Lors de l'édition
Tab
: autocomplétion ou indentationShift + Tab
: infobulle de documentationCtrl + ]
: Indentation de la ligneCtrl + [
: Désindentation de la ligneCtrl + Shift + P
: Palette de commandesAlt + ↑/↓
: Déplacer la ligne courante
Dans l'interface générale
↑/↓
: Sélectionner une celluleShift + ↑/↓
: Augmenter ou réduire la sélection de cellulesD + D
: Supprimer les cellules sélectionnéesY
: Définir la cellule comme étant du codeM
: Définir la cellule comme étant du Markdown
Toujours disponibles
Shift + Entrée
: Exécuter la cellule, passer à la suivanteCtrl + Entrée
: Exécuter les cellules sélectionnéesAlt + Entrée
: Exécuter la cellule, ajouter une nouvelle en dessous
Fonctionnement des cellules de code
Lorsque vous exécutez un Kernel Jupyter, vous êtes dans une console interactive Python dans laquelle chaque exécution peut changer l'état général (variables créées, mises à jour).
Quand vous exécutez une cellule, Jupyter imite la console interactive Python en affichant automatiquement la valeur de la dernière instruction d'une cellule.
Pour certains types (ex. pandas.DataFrame
{.python} ou matplotlib.axes.Axes
{.python}), le
rendu peut être augmenté en affichant par exemple un tableau HTML, ou directement
le contenu d'un graphique.
Affichage adaptatif des contenus
Vous voudrez occasionnellement pouvoir afficher de façon augmentée plusieurs contenus dans la même cellule, ce qui n'est pas possible de base puisque seule la dernière instruction provoque un affichage.
Jupyter propose en réalité une fonction anormalement confidentielle, display()
{.python},
qui affiche les objets de façon améliorée lorsque c'est possible.