La bibliothèque $\mathtt{NumPy}$

Retour au tutoriel général

La documentation complète est disponible à l'adresse https://numpy.org/doc/stable/

Le type $\mathtt{array}$ de $\mathtt{NumPy}$

Ici il convient de bien réfléchir à ce dont on a besoin. Si l'on a simplement besoin d'une structure matricielle alors une liste de listes est probablement suffisante. Si l'on a besoin des outils de l'algèbre linéaire (produit matrice vecteur, produit matrice matrice...) il est inenvisageable de les recoder. Pour cela la bibliothèque $\mathtt{NumPy}$ comprend un nouveau type : $\mathtt{array}$. Ce sont des tableaux dont le fonctionnement est très proche de celui du type $\mathtt{list}$.

Le type du tableau est le type utilisé lors de son initialisation. Si besoin, on peut le spécifier directement. C'est notamment le cas d'un tableau initialisé avec des entiers destiné à pouvoir contenir des $\mathtt{float}$.

Notez que le type par défaut des commandes $\mathtt{zeros}$ et $\mathtt{ones}$ est $\mathtt{float}$ alors que pour $\mathtt{arange}$ c'est $\mathtt{int}$.

Il existe une autre commande $\mathtt{linspace}(a,b,n)$ qui fournit le tableau de $a$ à $b$ (inclus) avec $n$ points équirépartis.

Une autre différence importante entre $\mathtt{array}$ et $\mathtt{list}$ est la surcharge des opérateurs. Le type $\mathtt{array}$ représente des vecteurs. Ainsi l'opérateur $+$ effectue l'addition terme à terme (et non la concaténation comme pour les listes). Il est bien sûr nécessaire que les deux tableaux aient la même taille. La plupart des opérations sont effectuées terme à terme.

L'opérateur $*$ effectue la multiplication terme à terme.

La concaténation s'obtient par la fonction $\mathtt{concatenate}$.

La longueur s'obtient avec la fonction $\mathtt{size}$

Algèbre linéaire : vecteurs et matrices

Le nombre de lignes et de colonnes (et donc la taille d'un vecteur) sont obtenues par l'attribut $\mathtt{shape}$.

On peut aussi facilement insérer de nouvelles lignes ou colonnes dans une matrice existante avec la fonction $\mathtt{insert}$. Ainsi, $\mathtt{np.insert(M, j, values=c, axis=1)}$ insère la colonne $c$ dans la matrice $M$ avant la colonne $j$. Le paramètre $\mathtt{axis=1}$ indique que ce sont des colonnes (pour les lignes il faut indiquer $\mathtt{axis=0}$).

L'extraction de sous-matrices est obtenue en prenant des tranches, comme pour les listes.

Attention dans la bibliothèque $\mathtt{NumPy}$ il n'y a pas de différence entre vecteur ligne et vecteur colonne.

La fonction $\texttt{matrix}\_\texttt{power}$ permet de calculer des puissances de matrices.

On y trouvera aussi par exemple des fonctions pour calculer le déterminant, les valeurs et vecteurs propres...

La fonction $\mathtt{solve}$ permet de résoudre numériquement le système linéaire $AX = b$.