Cette [[https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/][page web]] (en anglais) recense un certain nombre d'astuces
Cette [[https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/][page web]] (en anglais) recense un certain nombre d'astuces
relatives à l'utilisation de Jupyter (et en particulier des
relatives à l'utilisation de Jupyter (et en particulier des
illustrations des nombreuses commandes magiques =IPython magic=) et
illustrations des nombreuses commandes magiques =IPython magic=) et
...
@@ -33,32 +33,32 @@ créés pour vous) de votre projet gitlab par défaut. Il y a néanmoins
...
@@ -33,32 +33,32 @@ créés pour vous) de votre projet gitlab par défaut. Il y a néanmoins
des situations où vous pouvez vouloir utiliser d'autres notebooks que
des situations où vous pouvez vouloir utiliser d'autres notebooks que
ceux du MOOC.
ceux du MOOC.
- Créer un notebook tout neuf dans un répertoire donné ::
- Créer un notebook tout neuf dans un répertoire donné ::
1. À partir du menu: =File -> Open=. Ceci vous permet d'accéder au
1. À partir du menu: =File -> Open=. Ceci vous permet d'accéder au
gestionnaire de fichiers de Jupyter.
gestionnaire de fichiers de Jupyter.
2. Naviguez jusque dans le répertoire dans lequel vous souhaitez
2. Naviguez jusque dans le répertoire dans lequel vous souhaitez
créer votre notebook.
créer votre notebook.
3. Utilisez le bouton en haut à droite: =New -> Notebook: Python 3=.
3. Utilisez le bouton en haut à droite: =New -> Notebook: Python 3=.
4. Donnez un nom à votre notebook à partir du menu: =File -> Rename=.
4. Donnez un nom à votre notebook à partir du menu: =File -> Rename=.
N.B.: Si vous créez un notebook à partir du menu ~File -> New
N.B. : Si vous créez un notebook à partir du menu ~File -> New Notebook -> Python 3~,
Notebook -> Python 3~, il sera créé dans le répertoire courant. Le
il sera créé dans le répertoire courant. Le
déplacer après coup et un peu pénible. Il vous faudra aller dans
déplacer après coup est un peu pénible. Il vous faudra aller dans
le gestionnaire de fichiers de Jupyter (menu =File -> Open=),
le gestionnaire de fichiers de Jupyter (menu =File -> Open=),
sélectionner le notebook, l'arrêter (=Shut =down=), puis le déplacer
sélectionner le notebook, l'arrêter (=Shutdown=), puis le déplacer
(=Move=) et/ou le renommer (=Rename=).
(=Move=) et/ou le renommer (=Rename=).
- Importer un notebook déja existant :: Si le notebook qui vous
- Importer un notebook déjà existant :: Si le notebook qui vous
intéresse est déjà dans votre projet GitLab, il vous suffit de
intéresse est déjà dans votre projet GitLab, il vous suffit de
synchroniser la copie de votre Jupyter à l'aide du bouton =Git
synchroniser la copie de votre Jupyter à l'aide du bouton =Git pull=
pull= et d'utiliser le menu =File -> Open=. Dans le cas contraire,
et d'utiliser le menu =File -> Open=. Dans le cas contraire,
par exemple si souhaitez importer cet [[https://app-learninglab.inria.fr/gitlab/moocrr-session2/moocrr-reproducibility-study/blob/master/src/Python3/challenger.ipynb][autre notebook]] rédigé par
1. Télé-chargez le fichier sur votre répertoire. Pour ce [[https://app-learninglab.inria.fr/gitlab/moocrr-session2/moocrr-reproducibility-study/blob/master/src/Python3/challenger.ipynb][Notebook
rédigé par quelqu'un d'autre, procédez de la façon suivante :
1. Téléchargez le fichier sur votre répertoire. Pour ce [[https://app-learninglab.inria.fr/gitlab/moocrr-session2/moocrr-reproducibility-study/blob/master/src/Python3/challenger.ipynb][Notebook
hébergé sur un gitLab]], cliquez sur =Open raw= (l'icone avec
hébergé sur un gitLab]], cliquez sur =Open raw= (l'icone avec
un petit =</>= ) et sauvegardez (=Ctrl-S= sur la plupart des
un petit =</>= ) et sauvegardez (=Ctrl-S= sur la plupart des
navigateurs) son contenu (un long fichier texte au format JSON).
navigateurs) son contenu (un long fichier texte au format JSON).
2. Ouvrez le gestionnaire de fichiers de Jupyter via le menu =File ->
2. Ouvrez le gestionnaire de fichiers de Jupyter via le menu =File -> Open=
Open= et naviguez jusqu'au répertoire où vous souhaitez déposer
et naviguez jusqu'au répertoire où vous souhaitez déposer votre notebook.
votre notebook.
3. Utilisez le bouton en haut à droite =Upload= pour transférer le
3. Utilisez le bouton en haut à droite =Upload= pour transférer le
document de votre ordinateur vers le serveur Jupyter et confirmez
document de votre ordinateur vers le serveur Jupyter et confirmez
l'upload.
l'upload.
...
@@ -67,57 +67,57 @@ ceux du MOOC.
...
@@ -67,57 +67,57 @@ ceux du MOOC.
code correspondant.
code correspondant.
** Exécuter du code R et du code Python dans le même notebook
** Exécuter du code R et du code Python dans le même notebook
C'était impossible avec les premières versions de Jupyter mais c'est
C'était impossible avec les premières versions de Jupyter mais c'est
désormais très facile grâce à la bibliothèque python =rpy2= (les détails
désormais très facile grâce à la bibliothèque Python =rpy2= (les détails
d'installation sont donnés plus bas dans ce document) Il vous
d'installation sont donnés plus bas dans ce document). Il vous
faut tout d'abord ouvrir un notebook python.
faut tout d'abord ouvrir un notebook Python.
1. Chargez la bibliothèque =rpy2=. Le =%load_ext= est une commande magique
1. Chargez la bibliothèque =rpy2=. Le =%load_ext= est une commande magique
jupyter qui charge cette bibliothèque et vous donne accès à de
Jupyter qui charge cette bibliothèque et vous donne accès à de
nouvelles commandes magiques.
nouvelles commandes magiques.
#+begin_src python :results output :exports both
#+begin_src python :results output :exports both
%load_ext rpy2.ipython
%load_ext rpy2.ipython
#+end_src
#+end_src
2. Utilisez la (nouvellement activée) commande magique =%R=:
2. Utilisez la (nouvellement activée) commande magique =%R=:
#+begin_src python :results output :exports both
#+begin_src python :results output :exports both
%%R
%%R
summary(cars)
summary(cars)
#+end_src
#+end_src
Les objets Python peuvent même être passé à R de la façon suivante
Les objets Python peuvent même être passé à R de la façon suivante
(ici, on suppose que =df= est une dataframe pandas):
(ici, on suppose que =df= est une dataframe pandas):
#+begin_src python :results output :exports both
#+begin_src python :results output :exports both
%%R -i df
%%R -i df
plot(df)
plot(df)
#+end_src
#+end_src
Cette notation =%%R= indique à Python et à Jupyter et que le langage R
Cette notation =%%R= indique à Python et à Jupyter et que le langage R
doit être utilisé pour évaluer l'ensemble de la cellule. En interne,
doit être utilisé pour évaluer l'ensemble de la cellule. En interne,
python (=rpy2=) maintient une session R, lui passe le code de la cellule
Python (=rpy2=) maintient une session R, lui passe le code de la cellule
et récupère le résultat. Jupyter fait alors le nécessaire pour
et récupère le résultat. Jupyter fait alors le nécessaire pour
l'afficher correctement. Il est également possible d'utiliser =%R= pour
l'afficher correctement. Il est également possible d'utiliser =%R= pour
avoir une seule ligne de R au sein d'une cellule python.
avoir une seule ligne de R au sein d'une cellule Python.
Un exemple de notebook utilisant R et Python est donné [[file:../../documents/notebooks/notebook_Jupyter_Python_R.ipynb][ici]].
Un exemple de notebook utilisant R et Python est proposé [[file:../../documents/notebooks/notebook_Jupyter_Python_R.ipynb][ici]].
** Autres langages que Python et R
** Autres langages que Python et R
Jupyter tire son nom des langages Julia, Python, et R. Il ne se limite
Jupyter tire son nom des langages Julia, Python, et R. Il ne se limite
donc pas aux langages Python et R. De nombreux autres langages de
donc pas aux langages Python et R. De nombreux autres langages de
programmation sont disponibles:
programmation sont disponibles:
[[https://github.com/jupyter/jupyter/wiki/Jupyter-kernels][https://github.com/jupyter/jupyter/wiki/Jupyter-kernels]], et en
[[https://github.com/jupyter/jupyter/wiki/Jupyter-kernels][https://github.com/jupyter/jupyter/wiki/Jupyter-kernels]], et en
particulier des langages non libres comme SAS, Mathematica,
particulier des langages non libres comme SAS, Mathematica,
Matlab... Notez que la maturité de ces noyaux est très variables.
Matlab... Notez que la maturité de ces noyaux est très variable.
Nous n'avons déployé aucun de ces autres langages dans le cadre du
Nous n'avons déployé aucun de ces autres langages dans le cadre du
MOOC mais nous vous invitons à lire les sections suivantes pour
MOOC mais nous vous invitons à lire les sections suivantes pour
apprendre à déployer votre propre instance de jupyter et activer
apprendre à déployer votre propre instance de Jupyter et activer
certaines de ses extensions.
certaines de ses extensions.
Vous trouverez [[file:../../documents/notebooks/][ici]] une liste de notebooks jupyter illustrant comment
Vous trouverez [[file:../../documents/notebooks/][ici]] une liste de notebooks Jupyter illustrant comment
différents langages (python, R, SAS) peuvent être utilisés dans Jupyter.
différents langages (Python, R, SAS) peuvent être utilisés dans Jupyter.
*** SAS
*** SAS
SAS est un logiciel de statistiques propriétaires qui est très
SAS est un logiciel de statistiques propriétaires qui est très
couramment utilisé dans le domaine de la santé. Puisque la question
couramment utilisé dans le domaine de la santé. Puisque la question
est posée de façon récurrente, si vous avez besoin d'utiliser le
est posée de façon récurrente, si vous avez besoin d'utiliser le
langage SAS plutôt que le langage R, il y a deux façons d'utiliser SAS
langage SAS plutôt que le langage R, il y a deux façons d'utiliser SAS
avec Jupyter: soit avec le noyau [[https://sassoftware.github.io/sas_kernel/][Python SASKernel]] (l'équivalent du
avec Jupyter: soit avec le noyau [[https://sassoftware.github.io/sas_kernel/][Python SASKernel]] (l'équivalent du
=IRKernel=), soit avec la bibliothèque [[https://sassoftware.github.io/saspy/][Python SASPy]] (l'équivalent de
=IRKernel=), soit avec la bibliothèque [[https://sassoftware.github.io/saspy/][Python SASPy]] (l'équivalent de
=rpy2=).
=rpy2=).
...
@@ -128,19 +128,19 @@ produites par d'autres chercheurs. Nous le déconseillons donc dans un
...
@@ -128,19 +128,19 @@ produites par d'autres chercheurs. Nous le déconseillons donc dans un
objectif de recherche reproductible mais il faut aussi savoir ne pas
objectif de recherche reproductible mais il faut aussi savoir ne pas
être dogmatique. La perfection n'existe pas ;) et, même en utilisant
être dogmatique. La perfection n'existe pas ;) et, même en utilisant
SAS, l'utilisation de la programmation lettrée de Jupyter et d'un
SAS, l'utilisation de la programmation lettrée de Jupyter et d'un
contrôle de version (avec gitlab) et d'environnement (avec docker par
contrôle de version (avec GitLab) et d'environnement (avec Docker par
exemple) se révélera très certainement précieux.
exemple) se révélera très certainement précieux.
*[[https://sassoftware.github.io/saspy/][SASPy]]*
*[[https://sassoftware.github.io/saspy/][SASPy]]*
- Installer =saspy= via =pip=, par exemple comme ceci:
- Installer =saspy= via =pip=, par exemple comme ceci:
#+begin_src shell :results output :exports both
#+begin_src shell :results output :exports both
python -m pip install saspy
python -m pip install saspy
#+end_src
#+end_src
- Sous Windows, il vous faudra probablement modifier le fichier =C:\Program
- Sous Windows, il vous faudra probablement modifier le fichier
Files\Python\Python37\Lib\site-packages\saspy\sascfg_sav.py= et