Vous êtes sur la page 1sur 2

Formulaire Numpy – Matplotlib Math Sup

I Packages np.transpose(t)
On chargera les packages avec ,→ renvoie le tableau t transposé.
import numpy as np III Lire une matrice
import matplotlib . pyplot as plt
3.1 Un élément
,→ numpy ajoute un nouveau type de tableau. Les t[i]
tableaux numpy ont une taille fixe (pas de append()), et ,→ si t est un tableau, renvoie le i-ème élément.
un type fixe. Si t est une matrice, renvoie la i-ème ligne.
,→ matplotlib.pyplot sert à produire des sorties mat[i, j]
graphiques. ,→ renvoie l’élément sur la ligne i et la colonne j
de la matrice mat. Attention, cette syntaxe est spécifique
II Créer un tableau à numpy !
2.1 Tableaux particuliers
mat.shape
np.zeros(n)
,→ renvoie les dimensions de la matrice mat sous
,→ tableau de type flottant, rempli de zéros, de
forme d’un tuple. On peut par exemple utiliser
taille n.
n, p = mat.shape pour extraire les deux dimensions.
np.arange(a, b, step)
t.size
,→ équivalent de range, mais autorise des flottants.
,→ nombre total d’éléments dans t (renvoie le pro-
np.linspace(a, b, n) duit des dimensions, sous forme d’un entier)
,→ tableau de subdivisions régulières de [a, b] avec
3.2 Slicing
n points. Garantit la taille finale.
t[i:j]
2.2 Matrices particulières ,→ même principe que le slicing sur les listes.
np.zeros((n, p))
mat[a:b, c:d]
,→ matrice de n lignes et p colonnes de flottants
,→ récupère un extrait de mat contenant les lignes
nuls (attention, cette fonction ne prend qu’un seul
entre a et b-1, et les colonnes entre c et d-1.
argument, qui peut être un tuple).
mat[:, 0]
np.ones(...)
,→ récupère la première colonne de mat (c’est donc
,→ idem que np.zeros mais avec 1 partout. un tableau unidimensionnel).
np.eye(n)
mat[:-1, ::-1]
,→ matrice identité In . ,→ toutes les lignes sauf la dernière, toutes les colonnes
np.diag([d_0, d_2, ..., d_{n-1}]) mais en ordre inverse.
,→ matrice diagonale dont les coefficients sont les t[bools]
di . ,→ si bools est un tableau de dimensions de même
np.diag(li, k=...) dimension que t, renvoie le tableau correspondant aux
,→ le paramètre k (entier relatif) permet de décaler True dans t.
la diagonale vers le haut ou le bas. mat[bools]
2.3 À partir d’autres objets ,→ si bools est une matrice de booléens de même
np.array(li) dimension, renvoie le tableau des éléments correspon-
,→ tableau reprenant les mêmes éléments que la dant aux True dans mat.
liste li. Le type est inféré par les types dans li IV Opérations
(attention si li ne contient que des entiers).
4.1 Arithmétique
np.array(mat) t1 + t2, t1 * t2, ...
,→ tableau multidimensionnel reprenant les mêmes ,→ opération terme à terme si t1 et t2 ont même dimen-
éléments que la matrice mat. sion.
np.array(mat, dtype=np.float) t1 > t2
,→ permet de fixer le type des objets dans le tableau ,→ renvoie un tableau de booléens correspondant
résultat (ce paramètre optionnel est souvent présent au test, case par case.
dans les fonctions numpy).
1 + t1
np.hstack((a, b, ...)), np.vstack((a, b, ...)) ,→ broadcasting : l’élément 1 est dupliqué en au-
,→ concaténation horizontale ou verticale de tableaux tant d’éléments que la taille de t1 avant l’addition.
numpy. Renvoie le tableau contenant tous les éléments de t1
augmentés de 1.
2.4 Transformations de tableaux
np.reshape(t, (n, p)) 1 / mat
,→ renvoie le tableau t, sous forme d’une matrice ,→ Pour la même raison, renvoie les inverses des
n×p. éléments de mat.

cb emeric+h4@tourniaire.org 1/2
Formulaire Numpy – Matplotlib Math Sup

mat[mat > 0] 5.2 Commandes avancées


,→ Tableau des éléments strictement positifs de plt.xlim(a, b), plt.ylim(c, d)
mat. ,→ limite les valeurs sur les axes.
np.arange(0, 10) * np.arange(0, 10).reshape((10, 1)) plt.scatter(x, y)
,→ (Plus compliqué) Renvoie une table de multiplication ,→ fonctionne comme plt.plot() mais sans relier
pour l’intervalle J0, 9K les points, affiche un nuage de points à la place.

4.2 Fonctions classiques plt.fill(x, y)


np.sin, np.cos, np.tan, np.exp, ,→ comme plt.plot() mais remplit le polygone donné
np.log, np.sqrt, np.abs, etc. en argument.
,→ les fonctions de base de numpy peuvent s’appli- plt.imread() et plt.imshow()
quer directement sur tous les éléments d’un tableau. Les ,→ permettent de charger ou afficher des matrices
valeurs sont calculées hors de Python, ce qui permet des correspondant à des images (pixel par pixel). Voir la
calculs plus rapides quand il y a beaucoup de valeurs. documentation.
def f(x):
return 3*x + np.sin(x) - x**2 plt.savefig("Documents/nom_de_fichier.png")
,→ sauvegarde la figure au format indiqué par l’ex-
,→ dans cette situation, la fonction f peut s’appliquer tension (png ou pdf), pratique pour insérer dans un
indifféremment à un flottant ou à un tableau numpy. document !
def f(x):
if x > 0: plt.axis("equal")
return x ,→ force un repère orthonormal
else: 5.3 Légende
return -x
Note : dans une situation de TP, on évitera sauf mention
,→ par contre, dans ce cas, f ne peut pas s’appliquer sur explicite d’utiliser ces fonctions, pour ne pas perdre du
un tableau numpy, parce que x > 0 est un tableau de temps. Elles sont mentionnées pour produire de « jolies
booléens, et le if ne peut pas le traiter. » courbes.

f_vect = np.vectorize(f) plt.plot(x, y, label="nom de la courbe")


,→ f_vect est alors une fonction qui calcule la même plt.legend()
chose que f mais peut s’appliquer à un tableau (on perd ,→ crée une légende, utilisant les labels précisés
les gains de performance, cependant). pour nommer les courbes. Attention, cette manière
d’indiquer une courbe n’est pas lisible du tout pour des
4.3 Autres fonctions personnes daltoniennes.
np.dot(a, b) ou a.dot(b) ou a @ b (depuis Python 3.7)
,→ calcule le produit matriciel. plt.xlabel("Étiquette abscisses")
plt.ylabel("Étiquette ordonnées")
np.sum(t) ,→ étiquette les axes.
,→ calcule la somme des éléments de t.
plt.title("Titre de la figure")
np.sum(mat, axis=0) ,→ titre à la figure.
,→ calcule la somme selon l’axe 0 (l’axe 0 représente
les lignes, c’est donc une somme colonne par colonne).
5.4 Fenêtre graphique
C’est un paramètre classique dans numpy.
,→ permet de translater la courbe (en maintenant
np.max(mat), np.min(mat)
le clic gauche enfoncé) ou de zoomer (en maintenant le
,→ calcule le minimum ou le maximum de mat.
clic droit enfoncé). Noter que déplacer la courbe force à
V Tracer des courbes tout redessiner, il arrive que des courbes ne soient pas
visibles tant qu’on ne l’a pas fait.
5.1 Commandes de base
plt.plot(x, y)
,→ si x et y sont des tableaux de même dimen- ,→ revient au niveau de zoom par défaut.
sion, relie successivement les points de coordonnées
(x0 , y0 ), . . . , (xn−1 , yn−1 ). Chaque nouvel appel à
plt.plot() superpose la nouvelle courbe dans la fenêtre ,→ permet d’enregistrer la courbe produite
graphique. Pour éviter ça, fermer la fenêtre graphique.
plt.show()
,→ affiche la fenêtre graphique. Attention, parfois
elle s’ouvre en arrière plan, chercher l’icône .
plt.plot(x, y, 'r')
,→ options du tracé. Ici, on demande que la courbe soit
tracée en rouge.

cb emeric+h4@tourniaire.org 2/2

Vous aimerez peut-être aussi