164 lines
5.6 KiB
Markdown
164 lines
5.6 KiB
Markdown
---
|
||
title: Jupyter
|
||
author: 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` :
|
||
|
||
```bash {.numberLines}
|
||
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 :
|
||
|
||
```bash {.numberLines}
|
||
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 :
|
||
|
||
```bash {.numberLines}
|
||
jupyter notebook # nécessite d'installer jupyter
|
||
```
|
||
|
||
```bash {.numberLines}
|
||
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 indentation
|
||
- `Shift + Tab` : infobulle de documentation
|
||
- `Ctrl + ]` : Indentation de la ligne
|
||
- `Ctrl + [` : Désindentation de la ligne
|
||
- `Ctrl + Shift + P` : Palette de commandes
|
||
- `Alt + ↑/↓` : Déplacer la ligne courante
|
||
|
||
----
|
||
|
||
### Dans l'interface générale
|
||
|
||
- `↑/↓` : Sélectionner une cellule
|
||
- `Shift + ↑/↓` : Augmenter ou réduire la sélection de cellules
|
||
- `D + D` : Supprimer les cellules sélectionnées
|
||
- `Y` : Définir la cellule comme étant du code
|
||
- `M` : Définir la cellule comme étant du Markdown
|
||
|
||
----
|
||
|
||
### Toujours disponibles
|
||
|
||
- `Shift + Entrée` : Exécuter la cellule, passer à la suivante
|
||
- `Ctrl + Entrée` : Exécuter les cellules sélectionnées
|
||
- `Alt + Entrée` : Exécuter la cellule, ajouter une nouvelle en dessous
|
||
|
||
[Markdown]: https://docs.framasoft.org/fr/grav/markdown.html
|
||
|
||
----
|
||
|
||
## 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.
|
||
|
||
----
|
||
|
||
### Debugger de Jupyterlab
|
||
|
||
Vous avez la possibilité dans Jupyter de voir en temps réel les variables disponibles dans
|
||
le kernel en cours d'exécution. Pour cela, vous devrez lancer le [debugger]{.naming} en cliquant
|
||
sur l'icône `Bug` de la barre d'outils.
|
||
|
||
Un panneau possédant la même icône (sur le côté droit de la page) vous permettra d'observer les
|
||
variables disponibles.
|
||
|
||
----
|
||
|
||

|
||
|
||
----
|
||
|
||
### 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.
|
||
|
||
----
|
||
|
||

|