Le module numpy permet d'utiliser des tableaux (array) (type numpy.ndarray) dont les propriétés sont analogues à celles de vecteurs ou de
matrices.
Contrairement aux listes, les éléments d’un tableau doivent être de même type.
Un tableau T peut être unidimensionnel ou multidimensionnel, il peut être défini par extension ou par compréhension.
T = np.array(liste de valeurs)
On accède à un élément du tableau T comme à un élément d’une liste, via son index (la numérotation commence également à 0) grâce à une instruction de la forme
T[i]
.
T.size
renvoie 4 dans cet exemple (nombre total d'éléments).
T.shape
renvoie (4,) indiquant qu'il s'agit d'un tableau unidimensionnel.
La somme de deux tableaux de même taille correspond à la somme de deux vecteurs (somme des "coordonnées") et la multiplication par un scalaire correspond
de la même façon à la multiplication d'un vecteur par un scalaire.
Exemples
T = np.array(liste de listes de valeurs)
Le tableau T est constitué de lignes et de colonnes et on accède à l’élément de la ligne i et de la colonne j par T[i, j]
ou
T[i][j]
.
T.size
renvoie 6 dans cet exemple (nombre total d'éléments).
T.shape
renvoie (2,3) indiquant qu'il s'agit d'un tableau bidimensionnel à 2 lignes et 3 colonnes.
Les images sont des matrices de pixels, chaque pixel étant une liste ou un tableau de 3 ou 4 valeurs (cf. tutoriel Images numériques).
Exemples
L’instruction T[i, :]
renvoie la ligne i
L’instruction T[:, j]
renvoie la colonne j
L’instruction T[i:]
renvoie toutes les lignes à partir de la ligne i (incluse)
L’instruction T[:j]
renvoie toutes les lignes jusqu’à la ligne j (exclue)
L’instruction T[i:j]
renvoie toutes les lignes entre les ligne i (incluse) et j (exclue)
Exemples
np.arange([start, ]stop, [step, ]dtype=None)
(généralise range aux flottants, valeur finale exclue).
dtype est le type de données : int, float, np.uint8 (entier non signé sur 8 bits), np.uint16...
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
np.zeros((n,m),dtype)
et np.ones((n,m),dtype)
permettent de créer des tableaux de dimension \(n \times m\) remplis de 0 ou de 1.
np.full((n,m),v,dtype) permet de créer des tableaux de dimension \(n \times m\) remplis avec la valeur v (équivalent à np.ones((n,m))*v
).
np.empty((n,m),dtype permet de créer des tableaux de dimension \(n \times m\) remplis de valeurs indéterminées.
Pour des tableaux unidimensionnels : np.zeros(n,dtype), np.ones((n,dtype)...
dtype est le type de données (float par défaut).
U = T.copy()
pour copier un tableau (ou une liste).
T.reshape((n,m))
permet de redimensionner le tableau (attention à respecter \(n \times m = T.size\)).
Les fonctions numpy sont des fonctions vectorielles : elles peuvent être appliquées à des listes ou des tableaux (array) et le résultat est alors un tableau (type numpy.ndarray).
La fonction est appliquée « automatiquement » à chaque élément du tableau.
A contrario, les fonctions du module math sont des fonctions scalaires (qui ne s'appliquent qu'à des nombres mais ni à des listes ni à des tableaux).
Les fonctions mathématiques usuelles de numpy peuvent être appliquées à un tableau ou à une liste.
Il est possible de transformer une fonction f(x) définie par l’utilisateur en fonction vectorielle grâce à la commande np.vectorize(f)
:
cf. numpy vectorize.
NumPy (site officiel, en anglais).
Tutoriel NumPy (site officiel, en anglais).