Utilisation de Jupyter¶
Cellules¶
Une feuille Jupyter est composée de cellules que vous pouvez deviner si vous cliquez sur le texte. Il existe différents types de cellules que l'on choisit avec le menu déroulant au milieu des icônes en haut de la page :
- du code Python (par défaut)
- du texte enrichi (Markdown)
- du texte brut (utile pour désactiver une cellule de code)
Vous pouvez ajouter
une cellule avec le symbole + en haut de la page, supprimer une cellule avec les ciseaux, déplacer une cellule avec les flèches et l'éditer en double-cliquant dessus. On verra qu'on exécute les cellules pour obtenir le résultat du code écrit. Tout cela se retrouve dans le menu
Cell
.
Noyau (kernel)¶
Jupyter tient son nom de 3 langages à savoir Julia, Python et R. Aujourd'hui la liste des langages que l'on peut
utiliser dans une feuille Jupyter est bien plus longue mais dans tous les cas il faut un noyau qui fasse l'interface
entre Jupyter et le langage. Dans le cas de Python le noyau est iPython. On le choisit à la création de la feuille
et on peut interagir dessus à l'aide du menu Kernel
.
Les autres menus sont plus classiques et ne demandent pas d'explication (oubliez Widget
).
Note¶
Si vous ne connaissez pas Python ni Jupyter, il est conseillé de revenir ici après avoir lu le premier chapitre.
Manipulation des cellules¶
Etat et exécution¶
- Une cellule peut avoir 3 états :
- pas sélectionnée (pas de cadre autour de la cellule)
- sélectionnée (cadre bleu ou barre bleue à gauche)
- sélectionnée et en mode édition (changement de la couleur du fond et parfois cadre vert)
- Cliquer selectionne une cellule (voire la passe directement en mode édition pour les cellules de calcul)
- Double cliquer selectionne et passe en mode édition (sur une zone de texte, la syntaxe Markdown apparait)
- Enter comme cliquer permet de descendre dans les états quand Esc permet d'en remonter.
- Pour que Python recalcule le résultat d'une cellule
- Shift+Enter fait le calcul et passe à la cellule suivante
- Crtl+Enter fait le calcul et reste sur la cellule
- Alt+Enter fait le calcul et ajoute une cellule vide ensuite.
Affichage¶
[out]
Pour ne pas afficher de résultat, finir la dernière ligne de la cellule avec;
.[In]
Pour ne pas afficher une cellule, utiliser 'Hide input' de nbextessions (cf config dans le menu Edit).
print(2)
1+1; # remove the ; to see the difference
Configuration¶
Jupyter dispose de nombreuses commandes pour manipuler sa feuille de note et bien sûr il est possible de définir des raccourcis clavier.
Pour afficher la liste des commandes (la palette de commandes) cliquer sur le petit clavier dans la barre d'icones. Avec Chrome, on peut afficher cette palette de commandes avec Ctrl+Shift+P.
Pour afficher et définir ses raccourcis clavier vous pouvez passer le menu d'aide ou taper shortcut
dans
la palette de commandes.
Par exemple, pour mon usage j'ai redéfini le changement de type de cellule avec
- Crtl+1 pour le mode Code
- Crtl+2 pour le mode Markdown
- Crtl+3 pour le mode Raw (données non interprétées)
Cela fonctionne lorsque la cellule est sélectionnée mais pas en mode édition (donc cadre bleu ou barre bleue).
Exercice¶
Choisir ses raccourcis pour passer d'un mode à un autre puis passer la cellule ci-dessous en mode Code et l'exécuter.
print('$qsD!Me+nsodd= 1l lre3W$'[-2:2:-2])
Les raccourcis de manipulation des cellules sont bons à connaitre ou à redéfinir lorsqu'on commence à utiliser Jupyter sérieusement.
IPython¶
Lorsqu'on utilise Python dans Jupyter, on s'appuie sur IPython qui enrichit Python.
Cela donne les fonctionnalités suivantes :
- Complétion en appuyant sur Tab
- Aide avec
?
et??
pour encore plus d'aide pour les objets (voire le code) - Accès au shell avec
!
- Les commandes magiques
Complétion et aide¶
a
Tab va donner une liste dont abs
a
Pour les exemples d'aide il faut lancer les cellules pour voir le résultat.
abs?
Pour fermer la fenêtre d'aide cliquer sur la croix en haut à droite de la fenêtre ou utiliser Esc.?
mot = "Coucou"
mot.split?
Shell sous IPython¶
!pwd
vlib = '/var/lib/'
res = !ls $vlib
res = res.grep('lib')
for f in res:
print(f)
print(type(res))
res??
Commandes magiques¶
Les commandes magiques améliorent l'usage de Python. Elles commencent par
%
et s'appliquent à la ligne%%
et s'appliquent à la cellule (lorsque cela a un sens)
La première commande magique à lancer est %quickref
pour avoir la liste des possibilités d'iPython.
%quickref
Voici une selection de quelques commandes magiques :
%time
pour avoir le temps que prends la ligne (%%time
pour le temps d'exécution de la cellule).%timeit
est comme%time
mais il relance plusieur fois la ligne pour avoir une estimation plus juste%prun
pour lancer la ligne à travers le profiler de Python et voir où ca prend du temps%matplotlib inline
pour que les graphiques s'affichent dans la page Jupyter%load
pour charger un ficher Pyhton dans la cellule (met %load en commentaire un fois exécuté)
!echo 'print("coucou")' > /tmp/prog.py
%load /tmp/prog.py
import numpy as np
import scipy.linalg as lin
%prun lin.solve(np.random.random([3000,3000]), np.random.random(3000))
{{ PreviousNext('Introduction.ipynb','../lesson1 Python basics/00 - Premiers calculs.ipynb') }}