In [1]:
from IPython.core.display import HTML
css_file = './custom.css'
HTML(open(css_file, "r").read())
Out[1]:

M62_CM1 Introduction aux Notebooks IPython.

Table of Contents

Notebook Jupyter


Jupyter est une application Web qui regroupe intimement deux fonctionnalités très différentes :

  • Un outil qui permet de créer des documents multimédia intégrant du texte, des formules mathématiques, des graphiques, des images, voire des animations et des vidéos.
  • Une interface qui permet d'exécuter du code informatique. Pour cela Jupyter s'appuie sur des programmes indépendants capablent d'interpréter le langage dans lequel est écrit ce code. Dans la terminologie de Jupyter ces interpréteurs sont appelés des noyaux (kernel en anglais). Nous utiliserons le noyau pour le langage Python 3.

Les documents Jupyter sont appelés des notebooks. Un fichier notebook est reconnaissable par son extension $\texttt{.ipynb}$. Le document que vous lisez actuellement est un notebook.

Pour commencer, dans un terminal, lancer la commande jupyter notebook & (ou anaconda-navigator &). Cela ouvrira automatiquement un navigateur dans lequel on peut alors commencer à travailler. L'onglet principal représente l’arborescence des fichiers.

Installation simple

La façon la plus simple d’installer Python et Jupyter est d’installer Anaconda. Les procédures d’installations détaillées selon chaque système d’exploitation sont décrites à l’adresse : https://docs.anaconda.com/anaconda/install/. Les procédures suivantes sont un résumé rapide de la procédure d’installation.

  • Installation sous Windows.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#windows ;
    2. Double cliquer sur le fichier téléchargé pour lancer l’installation d’Anaconda, puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, lancer Anaconda Navigator à partir du menu démarrer.
  • Installation sous macOS.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#macos ;
    2. Double cliquer sur le fichier téléchargé pour lancer l’installation d’Anaconda, puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, lancer Anaconda Navigator à partir de la liste des applications.
  • Installation sous Linux.
    1. Télécharger Anaconda 5.2 (ou plus récent) pour Python 3.6 (ou plus récent) à l’adresse : https://www.anaconda.com/download/#linux ;
    2. Exécuter le fichier téléchargé avec bash puis suivre la procédure d’installation (il n’est pas nécessaire d’installer VS Code).
    3. Une fois l’installation terminée, taper anaconda-navigator dans un nouveau terminal pour lancer Anaconda Navigator.

Exporter un notebook

Lorsque vous avez terminé la rédaction de votre document, vous pouvez le télécharger sur l'ordinateur local dans le format qui vous convient. Choisir pour cela File/Download as...

Pour mettre vos notebooks en ligne : nbviewer

Manipulation du notebook

Le notebook est constitué d'une succession de cellules comportant

  • soit du texte en Markdown comme ici,
  • soit du code comme dans la cellule suivante (Python pour nous):
In [2]:
x=range(3)

Un liseré repère la cellule actuellement selectionnée.
Les cellules peuvent être dans le mode commande ou le mode édition:

  • mode commande : permet de se déplacer d'une cellule à l'autre et d'exécuter les cellules
  • mode édition : permet de modifier le contenu d'une cellule.

Mode commande (presser la touche [Esc])

Pour entrer dans le mode commande de la cellule sélectionnée, il suffit de presser la touche [Esc]. Quand vous êtes dans le mode commande, vous pouvez ajouter ou supprimer des cellules mais vous ne pouvez pas saisir de texte dans une cellule.
Voici les raccourcis principaux disponibles en mode commande :

  • [ESC] : Passe dans le mode commande
  • M : Transforme la cellule en une cellule de type Markdown.
  • Y : Transforme la cellule en une cellule de type Code.
  • [Ctrl-Enter] : Exécute la cellule.
  • [Shift-Enter] : Exécute la cellule et sélectionne la cellule suivante. L'appui répété de cette touche permet ainsi d'exécuter pas à pas toutes les cellules du notebook.
  • [Alt-Enter] : Exécute la cellule et insére une nouvelle cellule juste en dessous.
  • [Ctrl-S] ou S : Save and Checkpoint
  • I,I : Interrompt l'exécution du code.
  • 0,0 : Redémarre l'interpréteur. Il se retrouve alors dans son état initial.
  • A et B : Insèrent une nouvelle cellule, respectivement au-dessus ou au-dessous de la cellule sélectionnée.
  • X et C : Respectivement coupe ou copie la cellule sélectionnée.
  • V et [Shift-V] : Colle la cellule copiée/coupée respectivement au-dessus ou au-dessous.
  • D,D : Supprime la cellule sélectionnée.
  • Z : Annule la dernière suppression de cellule.
  • [Alt-Down] ou [Alt-Up] : Deplace la cellule selectionnée respectivement au-dessus ou en-dessous
  • [Shift-Down] ou [Shift-Up] : selectionne la cellule respectivement au-dessus ou en-dessous
  • [Shift-J] ou [Shift-K] : étende la selection aux cellules respectivement au-dessus ou en-dessous
  • [Shift-M] : merge selected cells, or current cell with cell below if only one cell is selected
  • [Shift-space] ou [space] : scroll notebook up or down
  • F : find and replace
  • L : toggle line numbers
  • [Shift-L] : toggles line numbers in all cells, and persist the setting
  • O : toggle output of selected cells
  • [Shift-O] : toggle output scrolling of selected cells
  • H : Affiche la liste de tous les raccourcis clavier.
  • [Shift-A] : Insert a heading cell above the selected cell
  • [Shift-B] : Insert a heading cell below the selected cell's section

Mode édition (presser la touche [Enter])

Pour entrer dans le mode édition de la cellule sélectionnée, il suffit de presser la touche [Enter] ou de double-cliquer à l'intérieur de la cellule. Quand une cellule est en édition vous pouvez saisir du texte comme dans un éditeur classique.
Lorsque le curseur est en début de ligne ou lorsque vous avez sélectionné du texte, l'appui sur la touche [Tab] (respectivement [Shift-TAB]) indente (respectivement désindente) les lignes correspondantes.
Voici d'autres raccourcis clavier :

  • [Ctrl-A] : Sélectionne tout le texte de la cellule.
  • [Ctrl-Z] : Annule les dernières saisies de texte.
  • [Ctrl-Enter] : Exécute la cellule.
  • [Shift-Enter] : Exécute la cellule et sélectionne la cellule suivante. L'appui répété de cette touche permet ainsi d'exécuter pas à pas toutes les cellules du notebook.
  • [Alt-Enter] : Exécute la cellule et insére une nouvelle cellule juste en dessous.
  • [ESC] : Passe dans le mode commande

Mode édition : les cellules Markdown et sa syntaxe

La touche M transforme la cellule sélectionnée en type Markdown. Vous pouvez alors rédiger du texte enrichi (titres, sous-titres, gras, italique, alinéas, tableaux, liens hypertexte, etc).
Le texte de la cellule doit être rédigé en langage Markdown qui est un langage de balisage léger. La syntaxe markdown est facile à apprendre (le plus simple est d'ailleurs de regarder des exemples de documents). Voici quelque liens :

Il est également possible d'insérer des morceaux de texte en langage $\LaTeX$ pour composer des expressions mathématiques.

La syntaxe

Markdown est un système d’édition et de formatage de texte. La philosophie du système veut que le texte écrit soit lisible sans interpréteur particulier en mode texte. Il est léger et épuré de l’essentiel de la verbosité d’un language balisé.
Les éléments de syntaxe sont des caractères de ponctuation qui font sens visuellement même non convertis. Une fois converti, le navigateur web (qui joue alors le rôle d’interpréteur) en rendra la lecture plus claire.

Vous pouvez tout à fait introduire directement des balises HTML dans votre texte. Attention, le formatage markdown ne sera pas appliqué à l’intérieur de ces balises.

Les titres

Il est possible de titrer en ajoutant des dièses (#) au début de la ligne. Il n’y a pas de limite au nombre de niveaux de titres qu’il est possible d’utiliser (mais n’allez pas au delà de 4).

# Title 1  
## Title 2  
### Title 3  
####  Title 4
#####  Title 5

Les paragraphes

Pour afficher un paragraphe, laisser une ligne vide.

Effectuer un saut de ligne simple dans votre texte markdown n’aura aucun effet. Sauf si vous terminez votre ligne par un double espace (ou plus que ça)...
comme ici.

L’emphase

Pour formater une partie de votre texte comme emphase, entourez le par des astérisques * ou des underscores _. Entourer par un signe unique passe en italique et par un double signe en gras. Il est possible de combiner les deux.
Un double tildes ~~ vous permettent de barrer le texte.

Les citations

Pour afficher un bloc de citation, commencez le paragraphe par un chevron fermant >. Si votre bloc contient plusieurs lignes, vous pouvez faire des sauts de lignes à la main et toutes les ouvrir par un chevron fermant, mais ce n’est pas nécessaire. Ces bloc peuvent contenir d’autres éléments markdown comme des titres ou des listes.

Les listes non ordonnée

Pour afficher une liste, commencez la ligne par une astérisque *, un moins - ou un plus +. Là encore, le choix n’a pas d’importance, mais il faut rester cohérent dans votre document.

+ item  
+ item  
+ item  

donne

  • item
  • item
  • item

Les listes ordonnées

Pour afficher une liste ordonnée, commencez la ligne par un nombre suivit d’un point.

1. item  
123. item  
17. item  

donne

  1. item
  2. item
  3. item

Le bloc de code

Pour afficher un bloc de code, sautez deux lignes comme pour un paragraphe, puis indentez avec 4 espaces ou une tabulation.
Pour afficher du code dans une ligne, il faut l’entourer par des guillemets simples (`).

Les filets ou barres de séparation

Pour afficher un filet de séparation, entrez dans votre texte au moins 3 astérisques * ou 3 moins - sur une ligne entourée de sauts de lignes. Il est possible de les séparer par des espaces.

Les liens

Il y a deux façons d’afficher un lien.

  1. De manière automatique en encadrant un lien par des chevrons, par exemple <http://www.google.com> donne http://www.google.com. Il est alors cliquable et affiche l’url indiquée entre chevrons.
  2. Ou en ajoutant des paramètres. Le texte à afficher est alors indiqué entre crochets suivit de l’adresse du lien entre parenthèses, par exemple [google](http://www.google.com "link to google") donne google. Dans les parenthèses, à la suite du lien, on peut indiquer un titre entre guillemets. Ce titre sera affiché lors du survol du lien dans le navigateur. Il sera également lu par les navigateurs textuels pour les déficients visuels.

Les images

Pour afficher une image en markdown,

  • commencez par un point d’exclamation,
  • puis indiquez le texte alternatif entre crochets. Ce dernier sera affiché si l’image n’est pas chargé et lue par les moteurs de recherche.
  • Terminez par l’URL de l’image entre parenthèses:
    • Cette URL peut être un lien vers le web https://upload.wikimedia.org/wikipedia/commons/3/38/Jupyter_logo.svg
    • ou un chemin local de ce type : /dossier_images/nom_de_mon_image.jpg.
  • Après le lien vers l’image, il est possible d’ajouter un titre lu par les navigateurs textuels et affiché au survol de l’image par les autres.
    Exemple:
    ![Jupyter logo](https://upload.wikimedia.org/wikipedia/commons/3/38/Jupyter_logo.svg)
    donne Jupyter logo

Si l'image doit être redimensionnée, utiliser directement du code $\texttt{html}$.
Comparer les codes suivants

  • ![Google logo](https://www.google.fr/images/srpr/logo11w.png "google logo") donne
    Google logo
  • <img src = "https://www.google.fr/images/srpr/logo11w.png" title = "google logo" alt = "Google logo" width="200"> donne
    Google logo

Si on veut qu'une image locale soit directement sauvegardée dans le notebook (par exemple pour partager le notebook sur le web), on peut utiliser une cellule Python et plusieurs méthodes sont possibles:

In [3]:
from IPython.display import Image
from IPython.core.display import HTML 
Image(url= "http://www.apprendre-en-ligne.net/blog/images/pacmath.png")
Out[3]:
In [4]:
# You retain the ability to use HTML tags to resize, etc...
Image(url= "http://www.apprendre-en-ligne.net/blog/images/pacmath.png", width=100, height=100)
Out[4]:
In [5]:
# You can also display images stored locally, either via relative or absolute path.
PATH = "./Images/"
Image(filename = PATH + "pacmath.png", width=100, height=100)
Out[5]:

Les tableaux

L’idée globale est de “dessiner” des colonnes en les entourant avec des pipes |. Le nombre de colonnes est défini dans la première ligne du tableau et vous devez pour chaque ligne avoir le même nombre de colonnes, même si certaines sont vides.
La première ligne sera votre en-tête. La seconde ligne sépare cet en-tête du corps du tableau, elle ne contient que des tiret - Il n'est plus possible de définir l'alignement des colonnes dans markdown.

| Header 1 | header 2 | header 3 |  
|----------|----------|----------|  
| 1 Online |   1      |    value |  
| Line 2   |   2      |    value |  
| 3 Online |   3      |    value |  
Header 1 header 2 header 3
1 Online 1 value
Line 2 2 value
3 Online 3 value

Assistant en ligne : Markdown Tables Generator

Échappement des caractères

Les caractères spéciaux ayant un sens en markdown doivent être échappés. Si vous souhaitez utiliser dans votre texte des astérisques, accolades, dièses... à une position indiquant à markdown que vous désirer un formatage particulier, vous devez les échapper en les faisant précéder d’un antislash \. Sinon markdown les masquera et appliquera le formatage correspondant. Les caractères suivants sont à échapper :

\ * ` - _ [] () {} # + . !  

Mode édition: les équations

Les équations peuvent être directement données au format $\LaTeX$, on peut donc par exemple écrire $x_i$ au milieu d’une ligne ou bien écrire des équations dans une nouvelle ligne et centrées:
$$\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}. $$
Quelques commandes $\LaTeX$ de base sont expliquées sur cette page, et pour plus de détails, vous pourrez consulter mon polycopié d'Initiation à $\LaTeX2e$, disponible ici, en particulier le chapitre 3.

Les modes mathématiques

Pour taper des formules mathématiques avec $\LaTeX$ , il y a besoin d’entrer en mode mathématiques.
Il existe deux modes mathématiques : les formules dans le texte (appelée inline) et les formules en évidence (dites en displaystyle).

  • Pour mettre une formule dans le texte, comme $y=f(x)$, il suffit de mettre la formule entre deux dollars: $y=f(x)$.
    Remarquer la différence entre le mode texte et le mode mathématique : avec des dollars on a $y=f(x)$ tandis que sans dollars on a y=f(x)
  • Pour mettre une formule en évidence, comme $$y=f(x)$$ il faut mettre la formule entre deux doubles dollars $$y=f(x)$$

Indices et exposantes

Deux opérations fondamentales en mode mathématique sont la mise en exposant et la mise en indice.

  • Pour obtenir un indice, il faut utiliser la touche _ qui s’obtient avec la touche «8». Par exemple, taper $x_1$ donnera $x_1$. Attention, taper $x_12$ ne donne pas $x_{12}$ mais $x_12$: seul le premier caractère tapé après _ est mis en indice; pour obtenir $x_{12}$, il faut taper $x_{12}$.
  • Pour obtenir un exposant, il faut utiliser ^ (accent circonflexe qui s’obtient en tapant deux fois la touche «^»). Par exemple, $x^2$ donne $x^2$. De même que pour les indices, $x^23$ donne $x^23$ tandis que $x^{23}$ donne $x^{23}$.
  • On peut bien sûr combiner les deux, dans l’ordre que l’on veux : $x_1^2$ ou $x^2_1$ donnent $x^2_1$

Symboles d'usage courant

Résultat Commande Résultat Commande Résultat Commande
$\infty$ \infty $\le$ \le $\iff$ \iff
$\forall$ \forall $\leq$ \leq $\nearrow$ \nearrow
$\exists$ \exists $\ge$ \ge $\searrow$ \searrow
$\nexists$ \nexists $\geq$ \geq $\in$ \in
$\partial$ \partial $\approx$ \approx $\subset$ \subset
$\ell$ \ell $\simeq$ \simeq $\cup$ \cup
$\pm$ \pm $\equiv$ \equiv $\cap$ \cap
$\mp$ \mp $\to$ \to $\setminus$ \setminus
$\times$ \times $\mapsto$ \mapsto $\emptyset$ \emptyset
$\neq$ \neq $\implies$ \implies

Pour la négation d'un symbole, on peut utiliser \not. Par exemple, $F \not\subset E$ fournit $F \not\subset E$.

Racine carrée, racine n-ième

La racine carrée s'obtient par \sqrt{...} et la racine n-ième par \sqrt[n]{...}:

$$

\sqrt{1+x} + \sqrt[3]{1+x} $$

$$\sqrt{1+x} + \sqrt[3]{1+x}$$

Fractions et coefficients binomiaux

Pour les fractions, on utilise la commande \frac{}{} qui prend deux arguments, dans l'ordre le numérateur et le dénominateur.
Pour les coefficients binomiaux on utilise la commande \binom{}{}.
Le rendu change selon qu'il s'agit d'une formule inline ou d'une formule displaystyle:
$\frac{1}{2}+1$ donne $\frac{1}{2}+1$
$$\frac{1}{2}+1$$ donne $$\frac{1}{2}+1$$

Lettres grecques

Pour taper les lettres grecques, il suffit de précéder le nom de la lettre par un backslash; par exemple $\alpha$ donne $\alpha$. Voici une liste complète des lettres grecques disponibles sous $\LaTeX$:

Résultat Commande Résultat Commande Résultat Commande
$ \alpha$ \alph$ $ \nu$ \nu $ \Gamma$ \Gamma
$ \beta$ \beta $ \xi$ \xi $ \Delta$ \Delta
$ \gamma$ \gamma $ \pi$ \pi $ \Theta$ \Theta
$ \delta$ \delta $ \varpi$ \varpi $ \Lambda$ \Lambda
$ \epsilon$ \epsilon $ \rho$ \rho $ \Xi$ \Xi
$ \varepsilon$ \varepsilon $ \varrho$ \varrho $ \Pi$ \Pi
$ \zeta$ \zeta $ \sigma$ \sigma $ \Sigma$ \Sigma
$ \eta$ \eta $ \tau$ \tau $ \Upsilon$ \Upsilon
$ \theta$ \theta $ \upsilon$ \upsilon $ \Phi$ \Phi
$ \vartheta$ \vartheta $ \chi$ \chi $ \Psi$ \Psi
$ \iota$ \iota $ \phi$ \phi $ \Omega$ \Omega
$ \kappa$ \kappa $ \varphi$ \varphi
$ \lambda$ \lambda $ \psi$ \psi
$ \mu$ \mu $ \omega$ \omega

Texte dans une formule displaystyle

La commande \text{} permet d'insérer du texte dans une formule displaystyle (les commandes \quad et \qquad insèrent de l'espace autour du texte):

$$

y = x^2 \qquad \text{et donc} \quad x = \pm\sqrt{y} $$

donne $$y = x^2 \qquad \text{et donc} \quad x = \pm\sqrt{y} $$

Fonctions mathématiques

Résultat Commande Résultat Commande Résultat Commande Résultat Commande
$\exp$ \exp $\cos$ \cos $\cosh$ \cosh $\lim$ \lim
$\ln$ \ln $\sin$ \sin $\sinh$ \sinh $\limsup$ \limsup
$\lg$ \lg $\tan$ \tan $\tanh$ \tanh $\liminf$ \liminf
$\log$ \log $\cot$ \cot $\coth$ \coth $\max$ \max
$\inf$ \inf $\arccos$ \arccos $\gcd$ \gcd $\sup$ \sup
$\det$ \det $\arcsin$ \arcsin $\hom$ \hom $\min$ \min
$\deg$ \deg $\arctan$ \arctan $\ker$ \ker $\arg$ \arg
$\dim$ \dim

 Grands opérateurs: intégrales, sommes, produits, etc.

Le rendu des grands opérateurs change selon qu'il s'agit d'une formule inline ou d'une formule displaystyle. Certaines de ces commandes prennent, tout comme $\max$ ou $\lim$, des bornes. Le principe est le même, on utilise des indices ou des exposants pour les taper. Le placement des indices et exposants dépend à nouveau de si la formule est mise en évidence ou pas.
$\int_a^b f(x) dx$ et $\sum_{i=0}^n u_n$ donnent $\int_a^b f(x) dx$ et $\sum_{i=0}^n u_n$
$$\int_a^b f(x) dx$$ et $$\sum_{i=0}^n u_n$$ donnent $$\int_a^b f(x) dx$$ et $$\sum_{i=0}^n u_n$$

Ponctuellement et seulement si absolument nécessaire, dans une formule inline

  • on peut forcer le positionnement des indices avec \limits:
    $\int\limits_a^b f(x) dx$ et $\sum\limits_{i=0}^n u_n$ donnent $\int\limits_a^b f(x) dx$ et $\sum\limits_{i=0}^n u_n$
  • on peut forcer la dimension et le positionnement des indices avec \displaystyle
    $\displaystyle\int_a^b f(x) dx$ et $\displaystyle\sum_{i=0}^n u_n$ donnent $\displaystyle\int_a^b f(x) dx$ et $\displaystyle\sum_{i=0}^n u_n$
Résultat inline Commande Résultat displaystyle Commande
$\int$ $\int$ $\displaystyle\int$ $$\int$$
$\iint$ $\iint$ $\displaystyle\iint$ $$\iint$$
$\iiint$ $\iiint$ $\displaystyle\iiint$ $$\iiint$$
$\sum$ $\sum$ $\displaystyle\sum$ $$\sum$$
$\prod$ $\prod$ $\displaystyle\prod$ $$\prod$$
$\bigcup$ $\bigcup$ $\displaystyle\bigcup$ $$\bigcup$$
$\bigcap$ $\bigcap$ $\displaystyle\bigcap$ $$\bigcap$$
$\bigsqcup$ $\bigsqcup$ $\displaystyle\bigsqcup$ $$\bigsqcup$$
$\bigoplus$ $\bigoplus$ $\displaystyle\bigoplus$ $$\bigoplus$$
$\bigotimes$ $\bigotimes$ $\displaystyle\bigotimes$ $$\bigotimes$$
$\coprod$ $\coprod$ $\displaystyle\coprod$ $$\coprod$$

Pour mettre plusieurs lignes dans les indices, il faut utiliser \substack{}; à l'intérieur de l'argument de \substack, on passe à la ligne avec \\.

$$

Li(x)=\prod{\substack{j=0\j\neq i}}^n\frac{x-x_j}{x_i-x_j} $$

donne $$L_i(x)=\prod_{\substack{j=0\\j\neq i}}^n\frac{x-x_j}{x_i-x_j}$$

Accents mathématiques

Voici les accents pouvant se mettre sur une lettre seule:

Résultat Commande Résultat Commande Résultat Commande
$\tilde{a}$ \tilde{a} $\mathring{a}$ \mathring{a} $\dot{a}$ \dot{a}
$\vec{a}$ \vec{a} $\grave{a}$ \grave{a} $\ddot{a}$ \ddot{a}
$\hat{a}$ \hat{a} $\acute{a}$ \acute{a} $\dddot{a}$ \dddot{a}
$\bar{a}$ \bar{a} $\breve{a}$ \breve{a} $\ddddot{a}$ \ddddot{a}
$\check{a}$ \check{a}

Il existe aussi des accents extensibles:

Résultat Commande Résultat Commande Résultat Commande
$\widehat{abc}$ \widehat{abc} $\widetilde{abc}$ \widetilde{abc} $\overleftarrow{abc}$ \overleftarrow{abc}
$\overline{abc}$ \overline{abc} $\underbrace{abc}$ \underbrace{abc} $\underleftarrow{abc}$ \underleftarrow{abc}
$\underline{abc}$ \underline{abc} $\overrightarrow{abc}$ \overrightarrow{abc} $\overleftrightarrow{abc}$ \overleftrightarrow{abc}
$\overbrace{abc}$ \overbrace{abc} $\underrightarrow{abc}$ \underrightarrow{abc} $\underleftrightarrow{abc}$ \underleftrightarrow{abc}

Pour \underbrace il est possible de placer du matériel en-dessous en utilisant _ et pour \overbrace du matériel au-dessus en utilisant ^:

$$

\underbrace{x^3 + x^2 + x + 1}_{\to 0} \qquad \overbrace{x^3 + x^2 + x + 1}^{= 0} $$

donne $$\underbrace{x^3 + x^2 + x + 1}_{\to 0} \qquad \overbrace{x^3 + x^2 + x + 1}^{= 0}$$

Délimiteurs

Résultat Commande Résultat Commande Résultat Commande
$($ ( $/$ / $\lfloor$ \lfloor
$)$ ) $\backslash$ \backslash $\rfloor$ \rfloor
$[$ [ $\lvert$ \lvert $\lceil$ \lceil
$]$ ] $\rvert$ \rvert $\rceil$ \rceil
$\{$ \{ $\lVert$ \lVert $\langle$ \langle
$\}$ \} $\rVert$ \rVert $\rangle$ \rangle
rien .

Il est important de comprendre que, même si \lvert et \rvert se ressemblent, ils ne peuvent pas être interchangés: \lvert doit toujours être utilisé pour ouvrir et \rvert pour refermer. Par exemple, $\lvert x\rvert$ se tape $\lvert x \rvert$. Les seuls délimiteurs à n'être ni ouvrant ni fermant mais médian sont le slash /, l'anti-slash \ et le \middle.

Pour avoir des délimiteurs qui sont de la même taille que ce qu'ils entourent, il faut précéder le délimiteur ouvrant par \left et le délimiteur fermant par \right:

$$

(1+\frac{1}{n})^n $$ donne $$(1+\frac{1}{n})^n$$

$$

\left(1+\frac{1}{n}\right)^n $$ donne $$\left(1+\frac{1}{n}\right)^n$$

Voici un exemple d'utilisation d'un délimiteur vide:

$$

\left.\frac{\partial P}{\partial T}\right|{V}=\frac{nR}{V} $$ donne $$\left.\frac{\partial P}{\partial T}\right|{V}=\frac{nR}{V}$$

On peut aussi utiliser \middle pour mettre un délimiteur médian au milieu d'un couple \left et \right, comme dans la définition d'un ensemble:

$$

\left{ x \middle| x^2<\frac{1}{2} \right} $$

donne $$\left\{ x \middle| x^2<\frac{1}{2} \right\}$$ On note qu'ici la barre verticale est trop proche de ce qu'il y a autour d'elle et il faut rajouter à la main deux petits espaces avec la commande \,:

$$

\left{ x \, \middle| \, x^2<\frac{1}{2} \right} $$ donne $$\left{ x \, \middle| \, x^2<\frac{1}{2} \right}$$

Alphabets mathématiques

Voici un résumé des alphabets mathématiques disponibles:

Résultat Commande Résultat Commande
$C$ C $x$ x
$\mathbb{C}$ \mathbb{C} $\mathrm{x}$ \mathrm{x}
$\mathcal{C}$ \mathcal{C} $\mathbf{x}$ \mathbf{x}
$\mathscr{C}$ \mathscr{C} $\boldsymbol{\sigma}$ \boldsymbol{\sigma}
$\mathfrak{C}$ \mathfrak{C} $\mathit{PGL}$ \mathit{PGL}

Ne pas confondre \mathrm et \text: le premier est pour mettre des maths en romain tandis que le second est pour insérer du texte dans une formule.

Tableaux mathématiques

Pour composer des tableaux mathématiques on utilise l'environnement {array}.
Cet environnement prend un argument obligatoire qui est la spécification du type des colonnes.
Les types de colonnes de base sont c (centré), l (aligné à gauche) et r (aligné à droite).
Le texte des différentes colonnes est séparé par un & et on passe à la ligne suivante en utilisant \\.
Pour rajouter un trait vertical entre deux colonnes, il suffit de mettre un | (qu'on obtient avec la combinaison de touches "AltGr+6") dans la spécification des colonnes.
Pour tracer un trait horizontal, il y a la commande \hline. Cette commande doit être soit au tout début du tableau soit après un \\.

$$
\begin{array}{|c|c|} \hline f(x) & f'(x)\\ \hline x^n & nx^{n-1}\\ \ln(x) & \frac{1}{x}\\ \hline \end{array}$$ donne $$\begin{array}{|c|c|} \hline f(x) & f'(x)\\ \hline x^n & nx^{n-1}\\ \ln(x) & \frac{1}{x}\\ \hline \end{array}

$$

Distinction de cas

Pour définir une fonction par morceaux on peut utiliser l'environnement {cases}, qui s'utilise de la façon suivante:

$$

H(x) = \begin{cases} 0 & \text{si $x < 0$,} \\ 1 & \text{si $x \geq 0$.} \end{cases} $$

donne $$ H(x) = \begin{cases} 0 & \text{si $x < 0$,} \\ 1 & \text{si $x \geq 0$.} \end{cases} $$

Matrices

On tape les matrices comme des tableaux, sauf qu'on utilise les environnements {matrix}, {pmatrix}, {bmatrix}, {Bmatrix}, {vmatrix}, {Vmatrix} ou {smallmatrix}:

$$
\begin{matrix} a & b \\ c & d \end{matrix}


\quad \begin{pmatrix} a & b \\ c & d \end{pmatrix} \quad \begin{bmatrix} a & b \\ c & d \end{bmatrix} \quad \begin{Bmatrix} a & b \ c & d \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} a & b \ c & d \end{Vmatrix} \quad \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} $$

donne$$ \begin{matrix} a & b \\ c & d \end{matrix} \quad \begin{pmatrix} a & b \\ c & d \end{pmatrix} \quad \begin{bmatrix} a & b \\ c & d \end{bmatrix} \quad \begin{Bmatrix} a & b \\ c & d \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} a & b \\ c & d \end{Vmatrix} \quad \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} $$

Alignement de formules

Pour aligner plusieurs formules, on dispose des environnements {align} et {multline} (il n'est pas nécessaire d'utiliser les $$...$$). Ne jamais mettre de \\ sur la dernière ligne de ces environnements.

  • L'environnement {align} permet d'aligner plusieurs signes d'égalité à l'intérieur d'une même formule:
\begin{align}

A & = B \ & = C+D \ & = E \end{align}

donne \begin{align} A & = B \\ & = C+D \\ & = E \end{align} On peut au besoin mettre plusieurs équations en colonne:

\begin{align}

A & = B & E & = F & I & = J \ & = C+C & & = G & & = K \ & = D & & & & \end{align}

donne \begin{align} A & = B & E & = F & I & = J \\ & = C+C & & = G & & = K \\ & = D & & & & \end{align}

  • L'environnement {multline} permet de découper une formule trop grande en plusieurs morceaux sans contrôle précis de l'alignement:
\begin{multline}

A+B+C+D+E+F+G+H+I+J\ +A+B+C+D+E+F+G+H+I+J\ +A+B+C+D+E+F+G+H+I+J\ +A+B+C+D+E+F+G+H+I+J \end{multline}

donne \begin{multline} A+B+C+D+E+F+G+H+I+J\\ +A+B+C+D+E+F+G+H+I+J\\ +A+B+C+D+E+F+G+H+I+J\\ +A+B+C+D+E+F+G+H+I+J \end{multline}

Le package $\texttt{amsmath}$ de $\LaTeX$ défini d'autres environnements, vous pouvez les utiliser (après avoir lu la documentation du package et compris dans quels cas il faut utiliser un environnement plutôt qu'un autre). En revanche, l'utilisation de l'environnement {eqnarray} pour mettre en forme une formule sur plusieurs lignes, qu'on peut trouver dans certains vieux manuels, sera considéré comme une faute grave. Cet environnement a plusieurs défauts bien illustré dans ce document: Avoid eqnarray!

Flèches extensibles

On dispose de deux flèches extensibles, \xleftarrow[]{} et \xrightarrow[]{}. Pour mettre une formule dessus, on utilise l'argument obligatoire entre accolades tandis que pour mettre une formule dessous, on utilise l'argument optionnel entre crochets:

$$

f(x) \xrightarrow{\text{d'après }(H)} a \quad f(x) \xrightarrow[x\to0]{} a \quad f(x) \xrightarrow[x\to0]{\text{d'après }(H)} a $$

donne $$ f(x) \xrightarrow{\text{d'après }(H)} a \quad f(x) \xrightarrow[x\to0]{} a \quad f(x) \xrightarrow[x\to0]{\text{d'après }(H)} a $$

Modules de congruences

Selon l'apparence voulue, il y a trois façon d'écrire les modules de congruence:

$a \equiv b \mod m$
$a \equiv b \pmod m$
$a \equiv b \pod m$

donnent
$a \equiv b \mod m$
$a \equiv b \pmod m$
$a \equiv b \pod m$
Il y a aussi la commande \bmod qu'on peut utiliser dans le contexte suivant
$\gcd(n,m\bmod n)$ donne $\gcd(n,m\bmod n)$

Placer au-dessus ou en-dessous

Les commandes \underset{en-dessous}{symbole} et \overset{au-dessus}{symbole} permettent de placer du matériel arbitraire en-dessous ou au-dessus de n'importe quel symbole.

$$

A \overset{\text{déf}}{=} \frac{1}{n} \underset{n \to +\infty}{\in} o\left(\frac{1}{n^2}\right) $$

donne $$ A \overset{\text{déf}}{=} \frac{1}{n} \underset{n \to +\infty}{\in} o\left(\frac{1}{n^2}\right) $$

Mode édition : les celulles Code

Lorsqu'on ouvre un terminal, un programme interpréteur de commandes système est lancé et attend les commandes pour les exécuter. De la même façon, en arrière-plan d'un notebook, un interpréteur de code a été lancé et attend lui aussi qu'on lui donne du code. Dans le coin supérieur droit vous pouvez voir qu'il s'agit ici de l'interpréteur Python 3.

Un notebook est constitué de cellules successives. Les cellules pour écrire du code sont repérables par le prompt In[ ]. Essayons :

In [6]:
2 / 3
Out[6]:
0.6666666666666666

Le texte 2 / 3 a été transmis à l'interpréteur Python 3. Il s'agit d'une expression Python 3 valide. L'interpréteur a donc pu l'évaluer. La valeur de l'expression (dont le type est ici un nombre flottant) est alors récupérée et représentée sous la forme du texte affiché à droite du prompt de sortie

N'oubliez pas que vous êtes dans un notebook. Vous pouvez donc modifier l'expression ci-dessus et la ré-exécuter en appuyant sur [Shift-ENTER]. Le numéro entre crochet est un compteur. Il est incrémenté à chaque sollicitation de l'interpréteur.

In [7]:
h = 2+2

L'exécution de l'instruction ci-dessus n'a produit aucun résultat en sortie. Cette instruction a cependant eu un effet. Elle a modifié l'état de l'interpréteur. En interne, l'interpréteur a associé la valeur de l'expression 2+2 (c'est-à-dire le type entier 4) au nom hauteur.

On peut alors exécuter :

In [8]:
h=2*h
h
Out[8]:
8

Lorsque vous ouvrez un notebook vous le visualisez tel qu'il a été sauvegardé. Vous voyez en particulier les résultats des séquences de code qui ont été exécutées. Cependant, à l'ouverture du notebook, un nouvel interpréteur tout neuf est lancé. Vous devez donc exécuter à nouveau les cellules. Mais dans quel ordre? La réponse naturelle est "dans l'ordre où apparaissent les cellules"... mais cela suppose que la personne qui a réalisé le notebook a fait correctement les choses.

Pour commenter une ou plusieurs lignes, les selectionner et appuyer sur [Ctrl-/]:

Les exceptions

Dans certaines situations, l'interpréteur peut s'interrompre en levant une exception. Les exceptions n'ont rien d'exceptionnelles. On en rencontre souvent, en particulier lorsque l'on commet des erreurs de programmation.

In [9]:
T = [18, 5, 3]
# T[3] # Décommenter la ligne pour voir l'exception

Pour comprendre ce qui a produit l'exception il faut :

  • identifier le nom de l'exception, ici IndexError,
  • lire le message associé, ici 'list index of range',
  • identifier l'instruction qui l'a provoqué, ici l'évaluation de T[3] à la ligne 2.

Il se peut aussi que le code que l'on exécute ne se termine pas :

In [10]:
k = 1
# while k > 0:   # Décommenter pour voir l'exception
#     k = k + 1

Lorqu'une cellule de code s'exécute le prompt comporte une étoile In[ *]. Pour interrompre l'interpréteur, il suffit d'appuyer deux fois sur la touche I. Si cela s'avère nécessaire, il est également possible de redémarrer l'interpréteur. Pour cela il faut appuyer deux fois sur la touche 0. L'interpréteur se retrouve alors dans son état initial.

 Entrée et sortie standard

Les programmes, quels qu'ils soient, lisent des données en provenance de sources variées (fichiers, réseaux, ports usb, etc). Ils envoient eux-mêmes des données vers diverses destinations. Dans tous les cas, cela se traduit par la lecture ou l'écriture de flux d'octets.

Dans un programme Python la fonction print permet d'écrire sur la sortie standard.

In [11]:
print("Accueil s'écrit :")
for x in "accueil":
    print(x)
Accueil s'écrit :
a
c
c
u
e
i
l

Remarquez que l'exécution du code ci-dessus n'a retourné aucune valeur. Il n'y a pas de prompt Out[ ]. Remarquez aussi que chaque fonction print a également envoyé un caractère saut de ligne sur la sortie standard.

L'aide en ligne IPython

  • L'auto-complétion Lorsque vous commencez à saisir un nom connu de l'interpréteur, l'appui sur la touche [TAB] complète le nom automatiquement. Si plusieurs noms sont possibles un menu contextuel vous propose de choisir. Ceci économise de la frappe tout en évitant les erreurs d'orthographe dans les noms des variables.
  • Les infobulles Lorsque le curseur de saisie est sur un nom connu de l'interpréteur (ou immédiatement à droite), l'appui sur [Shift-TAB] affiche une infobulle qui donne un descriptif succinct de l'objet désigné par ce nom. C'est un moyen rapide de vérifier par exemple quels sont les arguments qui sont attendus par une fonction.
  • Documentation en ligne Pour lire la documentation en ligne concernant un objet python (module, fonction, classe, etc), il suffit d'ajouter un ? juste après le nom et d'appuyer sur la touche [Enter]. Un pager s'ouvre alors avec la dite documentation.
In [12]:
?abs

Les commandes systèmes

Lorsque le texte de la cellule débute par un ! alors IPython en déduit que le reste du texte n'est pas du code python mais une commande système qui doit être exécutée par le Shell. Autrement dit IPython peut se substituer au terminal.

In [13]:
# Liste le contenu du dossier courant
!ls -l
total 10316
-rw-rw-r-- 1 minnolina minnolina   36617 févr. 18 10:39 chevre1.png
-rw-rw-r-- 1 minnolina minnolina   29100 févr. 18 10:38 chevre2.png
-rw-rw-r-- 1 minnolina minnolina   32188 févr. 18 10:38 chevre3.png
-rw-rw-r-- 1 minnolina minnolina    3034 mars  20 17:20 custom.css
-rw-rw-r-- 1 minnolina minnolina   32205 juil. 28  2015 erreurEuler.png
-rw-rw-r-- 1 minnolina minnolina   36739 févr. 18 11:14 fraise.png
drwxrwxr-x 2 minnolina minnolina    4096 mars  21 10:22 Images
-rw-rw-r-- 1 minnolina minnolina  118694 mars  22 10:59 M62-CM1-M.ipynb
-rw------- 1 minnolina minnolina 1122526 mars  13 10:14 M62-CM1.pdf
-rw-rw-r-- 1 minnolina minnolina 1164211 mars  22 11:02 M62-CM1-P.ipynb
-rw-rw-r-- 1 minnolina minnolina  647241 mars  22 10:25 M62-CM2.ipynb
-rw------- 1 minnolina minnolina  459926 mars  13 10:16 M62-CM2.pdf
-rw-rw-r-- 1 minnolina minnolina   83597 mars  25 09:57 M62-CM3.ipynb
-rw------- 1 minnolina minnolina  256441 mars  13 10:32 M62-CM3.pdf
-rw-rw-r-- 1 minnolina minnolina   35195 mars  25 09:57 M62-CM4.ipynb
-rw------- 1 minnolina minnolina  196378 mars  13 11:36 M62-CM4.pdf
-rw-rw-r-- 1 minnolina minnolina  642639 mars  25 09:37 M62-CM5.ipynb
-rw------- 1 minnolina minnolina  721739 mars  17 17:02 M62-CM5.pdf
-rw-rw-r-- 1 minnolina minnolina  209083 mars  25 09:54 M62-CM6-7.ipynb
-rw------- 1 minnolina minnolina  369125 mars  19 17:50 M62-CM6-7.pdf
-rw-rw-r-- 1 minnolina minnolina  961199 mars  25 21:19 M62-CM8.ipynb
-rw-rw-r-- 1 minnolina minnolina    1860 mars  25 20:56 M62-CM9.ipynb
-rw-rw-r-- 1 minnolina minnolina   73541 mars  25 21:06 M62-TO-DO.ipynb
-rw-rw-r-- 1 minnolina minnolina  238677 mars  25 21:04 M62-TP1.ipynb
-rw------- 1 minnolina minnolina  381758 mars  11 13:28 M62-TP1.pdf
-rw-rw-r-- 1 minnolina minnolina   82103 mars  21 10:30 M62-TP2.ipynb
-rw------- 1 minnolina minnolina  305266 mars  11 13:33 M62-TP2.pdf
-rw-rw-r-- 1 minnolina minnolina  271168 mars  25 09:58 M62-TP3.ipynb
-rw------- 1 minnolina minnolina  378306 mars  13 17:34 M62-TP3.pdf
-rw-rw-r-- 1 minnolina minnolina  220779 mars  21 10:30 M62-TP4.ipynb
-rw------- 1 minnolina minnolina  360561 mars  19 16:38 M62-TP4.pdf
-rw-rw-r-- 1 minnolina minnolina  185728 mars  25 21:13 M62-TP5.ipynb
-rw------- 1 minnolina minnolina  347221 mars  19 16:45 M62-TP5.pdf
-rw-rw-r-- 1 minnolina minnolina   30543 mars  25 21:07 M62-TP-Examen.ipynb
-rw-rw-r-- 1 minnolina minnolina     829 mars  20 11:42 pendule.pgf
-rw-rw-r-- 1 minnolina minnolina   34371 mars  20 11:42 pendule.png
drwxrwxr-x 2 minnolina minnolina    4096 févr. 18 14:49 __pycache__
-rw-rw-r-- 1 minnolina minnolina   12954 avril 23  2018 tikzmagic.py
-rw-rw-r-- 1 minnolina minnolina    1509 mars   4 13:31 Untitled1.ipynb
-rw-rw-r-- 1 minnolina minnolina   12332 mars   7 11:44 Untitled2.ipynb
-rw-rw-r-- 1 minnolina minnolina    1922 mars  13 16:13 Untitled3.ipynb
-rw-rw-r-- 1 minnolina minnolina  192583 févr. 28 13:10 Untitled.ipynb

Les commandes magiques de IPython

%matplotlib inline & %matplotlib notebook

Si la commande magisue %matplotlib est appelée sans argument, la sortie d'une commande de traçage est affichée à l'aide du backend matplotlib par défaut dans une fenêtre séparée.

Alternativement, le backend peut être explicitement demandé en utilisant, par exemple:

  • %matplotlib inline : la sortie est affichée directement sous la cellule de code qui l’a produite,
  • %matplotlib notebook : la sortie est affichée directement sous la cellule de code qui l’a produite et, de plus, permet des figures interactives.
In [14]:
%matplotlib inline
from matplotlib.pylab import *
plot([1,2],[3,4]);

%autosave 300

Sauvegarde automatiquement le notebook tous les 300 secondes (=5 minues)

%who, %whos et %reset

%who, %whos affichent les objets qui sont actuellement définis dans l'interpréteur Python.
%reset efface les variables définie; %reset -f efface les variables définies sans demander confirmation.

In [15]:
%who
ALLOW_THREADS	 Annotation	 Arrow	 Artist	 AutoLocator	 Axes	 AxisError	 BUFSIZE	 Button	 
CLIP	 Circle	 ComplexWarning	 DAILY	 DataSource	 DateFormatter	 DateLocator	 DayLocator	 ERR_CALL	 
ERR_DEFAULT	 ERR_IGNORE	 ERR_LOG	 ERR_PRINT	 ERR_RAISE	 ERR_WARN	 FLOATING_POINT_SUPPORT	 FPE_DIVIDEBYZERO	 FPE_INVALID	 
FPE_OVERFLOW	 FPE_UNDERFLOW	 FR	 False_	 Figure	 FigureCanvasBase	 FixedFormatter	 FixedLocator	 FormatStrFormatter	 
Formatter	 FuncFormatter	 GridSpec	 HOURLY	 HTML	 HourLocator	 Image	 IndexDateFormatter	 IndexLocator	 
Inf	 Infinity	 LinAlgError	 Line2D	 LinearLocator	 Locator	 LogFormatter	 LogFormatterExponent	 LogFormatterMathtext	 
LogLocator	 MAXDIMS	 MAY_SHARE_BOUNDS	 MAY_SHARE_EXACT	 MINUTELY	 MO	 MONTHLY	 MachAr	 MaxNLocator	 
MinuteLocator	 ModuleDeprecationWarning	 MonthLocator	 MultipleLocator	 NAN	 NINF	 NZERO	 NaN	 Normalize	 
NullFormatter	 NullLocator	 PATH	 PINF	 PZERO	 PackageLoader	 PolarAxes	 Polygon	 RAISE	 
RRuleLocator	 RankWarning	 Rectangle	 SA	 SECONDLY	 SHIFT_DIVIDEBYZERO	 SHIFT_INVALID	 SHIFT_OVERFLOW	 SHIFT_UNDERFLOW	 
SU	 ScalarFormatter	 ScalarType	 SecondLocator	 Slider	 Subplot	 SubplotTool	 T	 TH	 
TU	 Text	 TickHelper	 TooHardError	 True_	 UFUNC_BUFSIZE_DEFAULT	 UFUNC_PYVALS_NAME	 VisibleDeprecationWarning	 WE	 
WEEKLY	 WRAP	 WeekdayLocator	 Widget	 YEARLY	 YearLocator	 absolute	 absolute_import	 acorr	 
add	 add_docstring	 add_newdoc	 add_newdoc_ufunc	 add_newdocs	 alen	 all	 allclose	 alltrue	 
amap	 amax	 amin	 angle	 angle_spectrum	 annotate	 any	 append	 apply_along_axis	 
apply_over_axes	 arange	 arccos	 arccosh	 arcsin	 arcsinh	 arctan	 arctan2	 arctanh	 
argmax	 argmin	 argpartition	 argsort	 argwhere	 around	 array	 array2string	 array_equal	 
array_equiv	 array_repr	 array_split	 array_str	 arrow	 asanyarray	 asarray	 asarray_chkfinite	 ascontiguousarray	 
asfarray	 asfortranarray	 asmatrix	 asscalar	 atleast_1d	 atleast_2d	 atleast_3d	 autoscale	 autumn	 
average	 axes	 axhline	 axhspan	 axis	 axvline	 axvspan	 bar	 barbs	 
barh	 bartlett	 base_repr	 bench	 beta	 binary_repr	 bincount	 binomial	 bitwise_and	 
bitwise_not	 bitwise_or	 bitwise_xor	 bivariate_normal	 blackman	 block	 bmat	 bone	 bool8	 
bool_	 box	 boxplot	 broadcast	 broadcast_arrays	 broadcast_to	 broken_barh	 busday_count	 busday_offset	 
busdaycalendar	 byte	 byte_bounds	 bytes	 bytes0	 bytes_	 c_	 can_cast	 cast	 
cbook	 cbrt	 cdouble	 ceil	 center_matrix	 cfloat	 char	 character	 chararray	 
chisquare	 choice	 cholesky	 choose	 cla	 clabel	 clf	 clim	 clip	 
clongdouble	 clongfloat	 close	 cm	 cohere	 colorbar	 colormaps	 colors	 column_stack	 
common_type	 compare_chararrays	 complex128	 complex256	 complex64	 complex_	 complexfloating	 compress	 concatenate	 
cond	 conj	 conjugate	 connect	 contour	 contourf	 convolve	 cool	 copper	 
copy	 copysign	 copyto	 corrcoef	 correlate	 cos	 cosh	 count_nonzero	 cov	 
cross	 csd	 csingle	 css_file	 csv2rec	 ctypeslib	 cumprod	 cumproduct	 cumsum	 
cycler	 date2num	 datestr2num	 datetime	 datetime64	 datetime_as_string	 datetime_data	 dedent	 deg2rad	 
degrees	 delaxes	 delete	 demean	 deprecate	 deprecate_with_doc	 deprecated	 det	 detrend	 
detrend_linear	 detrend_mean	 detrend_none	 diag	 diag_indices	 diag_indices_from	 diagflat	 diagonal	 diff	 
digitize	 dirichlet	 disconnect	 disp	 dist	 dist_point_to_segment	 distances_along_curve	 divide	 division	 
divmod	 docstring	 dot	 double	 drange	 draw	 draw_all	 draw_if_interactive	 dsplit	 
dstack	 dtype	 e	 ediff1d	 eig	 eigh	 eigvals	 eigvalsh	 einsum	 
einsum_path	 emath	 empty	 empty_like	 entropy	 epoch2num	 equal	 errorbar	 errstate	 
euler_gamma	 eventplot	 exception_to_str	 exp	 exp2	 exp_safe	 expand_dims	 expm1	 exponential	 
extract	 eye	 f	 fabs	 fastCopyAndTranspose	 fft	 fft2	 fftfreq	 fftn	 
fftpack	 fftpack_lite	 fftshift	 fftsurr	 figaspect	 figimage	 figlegend	 fignum_exists	 figtext	 
figure	 fill	 fill_between	 fill_betweenx	 fill_diagonal	 find	 find_common_type	 findobj	 finfo	 
fix	 flag	 flatiter	 flatnonzero	 flatten	 flexible	 flip	 fliplr	 flipud	 
float128	 float16	 float32	 float64	 float_	 float_power	 floating	 floor	 floor_divide	 
fmax	 fmin	 fmod	 format_float_positional	 format_float_scientific	 format_parser	 frange	 frexp	 frombuffer	 
fromfile	 fromfunction	 fromiter	 frompyfunc	 fromregex	 fromstring	 full	 full_like	 fv	 
gamma	 gca	 gcf	 gci	 generic	 genfromtxt	 geometric	 geomspace	 get	 
get_array_wrap	 get_backend	 get_cmap	 get_current_fig_manager	 get_figlabels	 get_fignums	 get_include	 get_plot_commands	 get_printoptions	 
get_scale_docs	 get_scale_names	 get_sparse_matrix	 get_state	 get_xyz_where	 getbufsize	 geterr	 geterrcall	 geterrobj	 
getp	 ginput	 gradient	 gray	 greater	 greater_equal	 grid	 griddata	 gumbel	 
h	 half	 hamming	 hanning	 heaviside	 helper	 hexbin	 hfft	 hist	 
hist2d	 histogram	 histogram2d	 histogramdd	 hlines	 hold	 hot	 hsplit	 hstack	 
hsv	 hypergeometric	 hypot	 i0	 identity	 ifft	 ifft2	 ifftn	 ifftshift	 
ihfft	 iinfo	 imag	 imread	 imsave	 imshow	 in1d	 index_exp	 indices	 
inexact	 inf	 inferno	 info	 infty	 inner	 insert	 inside_poly	 install_repl_displayhook	 
int0	 int16	 int32	 int64	 int8	 int_	 int_asbuffer	 intc	 integer	 
interactive	 interp	 intersect1d	 intp	 inv	 invert	 ioff	 ion	 ipmt	 
irfft	 irfft2	 irfftn	 irr	 is_busday	 is_closed_polygon	 is_numlike	 isclose	 iscomplex	 
iscomplexobj	 isfinite	 isfortran	 ishold	 isin	 isinf	 isinteractive	 isnan	 isnat	 
isneginf	 isposinf	 ispower2	 isreal	 isrealobj	 isscalar	 issctype	 issubclass_	 issubdtype	 
issubsctype	 isvector	 iterable	 ix_	 jet	 k	 kaiser	 kron	 l1norm	 
l2norm	 lapack_lite	 laplace	 ldexp	 left_shift	 legend	 less	 less_equal	 lexsort	 
linalg	 linspace	 little_endian	 load	 loads	 loadtxt	 locator_params	 log	 log10	 
log1p	 log2	 logaddexp	 logaddexp2	 logical_and	 logical_not	 logical_or	 logical_xor	 logistic	 
loglog	 lognormal	 logseries	 logspace	 long	 longcomplex	 longdouble	 longest_contiguous_ones	 longest_ones	 
longfloat	 longlong	 lookfor	 lstsq	 ma	 mafromtxt	 magma	 magnitude_spectrum	 margins	 
mask_indices	 mat	 math	 matmul	 matplotlib	 matrix	 matrix_power	 matrix_rank	 matshow	 
maximum	 maximum_sctype	 may_share_memory	 mean	 median	 memmap	 meshgrid	 mgrid	 min_scalar_type	 
minimum	 minorticks_off	 minorticks_on	 mintypecode	 mirr	 mlab	 mod	 modf	 movavg	 
moveaxis	 mpl	 msort	 multi_dot	 multinomial	 multiply	 multivariate_normal	 mx2num	 nan	 
nan_to_num	 nanargmax	 nanargmin	 nancumprod	 nancumsum	 nanmax	 nanmean	 nanmedian	 nanmin	 
nanpercentile	 nanprod	 nanstd	 nansum	 nanvar	 nbytes	 ndarray	 ndenumerate	 ndfromtxt	 
ndim	 ndindex	 nditer	 negative	 negative_binomial	 nested_iters	 new_figure_manager	 newaxis	 nextafter	 
nipy_spectral	 noncentral_chisquare	 noncentral_f	 nonzero	 norm	 norm_flat	 normal	 normpdf	 not_equal	 
np	 nper	 npv	 num2date	 num2epoch	 number	 obj2sctype	 object0	 object_	 
ogrid	 ones	 ones_like	 outer	 over	 packbits	 pad	 pareto	 partition	 
path_length	 pause	 pcolor	 pcolormesh	 percentile	 permutation	 phase_spectrum	 pi	 pie	 
piecewise	 pink	 pinv	 pkgload	 place	 plasma	 plot	 plot_date	 plotfile	 
plotting	 plt	 pmt	 poisson	 polar	 poly	 poly1d	 poly_below	 poly_between	 
polyadd	 polyder	 polydiv	 polyfit	 polyint	 polymul	 polysub	 polyval	 positive	 
power	 ppmt	 prctile	 prctile_rank	 print_function	 prism	 prod	 product	 promote_types	 
psd	 ptp	 put	 putmask	 pv	 pylab_setup	 qr	 quiver	 quiverkey	 
r_	 rad2deg	 radians	 rand	 randint	 randn	 random	 random_integers	 random_sample	 
ranf	 rank	 rate	 ravel	 ravel_multi_index	 rayleigh	 rc	 rcParams	 rcParamsDefault	 
rc_context	 rcdefaults	 real	 real_if_close	 rec	 rec2csv	 rec_append_fields	 rec_drop_fields	 rec_join	 
recarray	 recfromcsv	 recfromtxt	 reciprocal	 record	 register_cmap	 relativedelta	 remainder	 repeat	 
require	 reshape	 resize	 result_type	 rfft	 rfft2	 rfftfreq	 rfftn	 rgrids	 
right_shift	 rint	 rk4	 rms_flat	 roll	 rollaxis	 roots	 rot90	 round_	 
row_stack	 rrule	 s_	 safe_eval	 sample	 save	 savefig	 savetxt	 savez	 
savez_compressed	 sca	 scatter	 sci	 sctype2char	 sctypeDict	 sctypeNA	 sctypes	 searchsorted	 
seed	 segments_intersect	 select	 semilogx	 semilogy	 set_cmap	 set_numeric_ops	 set_printoptions	 set_state	 
set_string_function	 setbufsize	 setdiff1d	 seterr	 seterrcall	 seterrobj	 setp	 setxor1d	 shape	 
shares_memory	 short	 show	 show_config	 shuffle	 sign	 signbit	 signedinteger	 silent_list	 
sin	 sinc	 single	 singlecomplex	 sinh	 six	 size	 slogdet	 slopes	 
solve	 sometrue	 sort	 sort_complex	 source	 spacing	 specgram	 spectral	 split	 
spring	 spy	 sqrt	 square	 squeeze	 stack	 stackplot	 standard_cauchy	 standard_exponential	 
standard_gamma	 standard_normal	 standard_t	 std	 stem	 step	 stineman_interp	 str0	 str_	 
streamplot	 string_	 strpdate2num	 style	 subplot	 subplot2grid	 subplot_tool	 subplots	 subplots_adjust	 
subtract	 sum	 summer	 suptitle	 svd	 swapaxes	 switch_backend	 sys	 table	 
take	 tan	 tanh	 tensordot	 tensorinv	 tensorsolve	 test	 text	 thetagrids	 
tick_params	 ticklabel_format	 tight_layout	 tile	 timedelta64	 title	 trace	 tracemalloc_domain	 transpose	 
trapz	 tri	 triangular	 tricontour	 tricontourf	 tril	 tril_indices	 tril_indices_from	 trim_zeros	 
tripcolor	 triplot	 triu	 triu_indices	 triu_indices_from	 true_divide	 trunc	 twinx	 twiny	 
typeDict	 typeNA	 typecodes	 typename	 types	 ubyte	 ufunc	 uint	 uint0	 
uint16	 uint32	 uint64	 uint8	 uintc	 uintp	 ulonglong	 unicode	 unicode_	 
unicode_literals	 uniform	 uninstall_repl_displayhook	 union1d	 unique	 unpackbits	 unravel_index	 unsignedinteger	 unwrap	 
ushort	 using_mklfft	 vander	 var	 vdot	 vector_lengths	 vectorize	 violinplot	 viridis	 
vlines	 void	 void0	 vonmises	 vsplit	 vstack	 waitforbuttonpress	 wald	 warnings	 
weibull	 where	 who	 window_hanning	 window_none	 winter	 x	 xcorr	 xkcd	 
xlabel	 xlim	 xscale	 xticks	 ylabel	 ylim	 yscale	 yticks	 zeros	 
zeros_like	 zipf	 
In [16]:
%reset -f
In [17]:
%who
Interactive namespace is empty.

Références