Jupyter

Le Jupyter notebook est un document JSON.

Il est composé de cellules d’entrée/sortie qui peuvent contenir

  • du code

  • du texte

  • des formules mathématiques

  • des graphiques.

Il se termine généralement par l’extension .ipynb.

Styles

Les styles italic bold et code peuvent être appliqués dans un texte.

Listes

Les listes avec plusieurs niveaux sont à éviter, car les sous-niveau s’affichent pas de la même façon dans un notebook et dans la page web généré avec l’outil jupyter-book.

Liste à puces

  • item

  • item

  • item

Liste numéroté

  1. item

  2. item

  3. item

Texte littéral

Pour afficher un texte littéral il suffit d’indenter ses lignes.

# text littéral
x = 'hello'
print(x)

Commandes magiques

Les commandes magiques permettent d’appeler certaines commandes UNIX.

La commande pwd affiche le dossier actuel.

pwd
'/Users/raphael/GitHub/edunum/doc/misc'

La commande ls affiche les dossiers et fichiers.

ls *.ipynb
github.ipynb   jupyter.ipynb  style.ipynb    thonny.ipynb
ll *.txt
-rw-r--r--  1 virginie  staff  22 Jan 17 13:12 demo.txt

La commande %save sauvegarde les lignes qui suivent dans un fichier.

%save hello.py
print('hello')
print('world')
File `hello.py` exists. Overwrite (y/[N])?   y
'' was not found in history, as a file, url, nor in the user namespace.
hello
world

Insérer des images

La commande

![logo](../logo.png)

insère une image

logo

Hyper-liens

La commande

[notebook](https://jupyter-notebook.readthedocs.io)

insère un hyper-lien notebook

Formules mathématiques

Des expression en LaTeX peuvent être insérés dans le texte.

  • $a_2$ pour un index \(a_2\)

  • $a^2$ pour un exposant \(a^2\)

Les accolades permettent le groupement de sous-expressions.

  • $a^{1+2}$ pour un exposant \(a^{1+2}\)

  • $\frac{2}{x+1}$ pour une fraction \(\frac{2}{x+1}\)

Une formule LaTeX entourée par $$ apparait plus grande et centrée sur la page (display mode).

$$\sum_{i=0}^n {n} = 0 + 1 + 2 + ... + n$$

\[\sum_{i=0}^n {n} = 0 + 1 + 2 + ... + n\]

Exemple de code

Le code source (Python)

```python
for in range(3):
    print(i)
```

produit

for in range(3):
    print(i)

Le code source (C)

```c
for (i=0; i++, i<3)
{
    print(i)
}
```

produit

for (i=0; i++, i<3)
{
    print(i)
}

Tableau

Un tableau est centré avec des bandes alternés en Jupyter.
Il s’afficher plus aéré et aligné à gauche dans le site web.

| x     | not x |
|-------|-------|
| False | True  |
| True  | False |

x

not x

False

True

True

False

Charger un fichier

Exécuter la commande %load hello.py ajoute le fichier dans la cellule et met la commande en commentaire.

# %load hello.py
print('hello')
print('world')

Exécuter un fichier

La commande %run permet d’exécuter un fichier externe et afficher son résultat dans la cellule suivante.

%run hello.py
hello
world

Code HTML

La commande %%html permet d’interpreter du code HTML et d’afficher son résultat dans la cellule suivante.

%%html
<h2>Titre 2</h2>
Texte en <b>gras</b> et <i>italique</i>. 

Titre 2

Texte en gras et italique.

Ecrire dans un fichier

La commande %%file permet d’écrire les lignes de texte qui suivent dans un fichier.

%%file demo.txt
some text
Overwriting demo.txt

Vérifions si le fichier texte existe.

ls *.txt
demo.txt

Avec l’option -a (append) nous pouvons ajouter des lignes de texte à un fichier existant.

%%file -a demo.txt
append text
Appending to demo.txt

Affichons le nouveau contenu.

cat demo.txt
some text
append text

Widgets

Les widgets n’apparaissent pas dans ce Jupyter notebook, mais ils apparaissent dans le document HTML. Par contre le document HTML est statique et n’a pas de serveur Python.

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
widgets.IntSlider()
def f(x):
    return x
interact(f, x=10);
10

Les tags d’une cellule

Ces tags peuvent être ajouté aux méta-données d’une cellule.

  • fill-width

  • output-scroll

  • margin

  • hide-input

  • hide-output

  • hide-cell

  • remove-input

  • remove-output

  • remove-cell

Le résultat n’est pas visible dans le Jupyter notebook, seulement dans la page HTML.

Cacher l’entrée

Pour cacher l’entrée de la cellule (input), ajoutez le tag hide-input.

Dans Jupyter Lab il faut

  • choisir la cellule

  • ouvrir Property Inspector (icône avec deux rouages à droite en haut)

  • cliquer sur un cell tag existant ou ajouter un nouveau tag

Pour afficher l’entrée de la cellule cliquz sur Afficher (+).

for i in range(3):
    print(i)
0
1
2

Cacher l’entrée

Pour cacher la sortie de la cellule (output), ajoutez le tag hide-output.

for i in range(3):
    print(i)
0
1
2

Cacher la cellule

Pour cacher la cellule entière (input+output), ajoutez le tag hide-cell.

for i in range(3):
    print(i)
0
1
2

Télécharger un fichier

Le code

* {download}`test.md <test.md>`
* {download}`Demo <demo.txt>`
* {download}`hello.py <hello.py>`

produit des liens pour télécharger des fichiers