La bibliothèque numpy

 

numPy (diminutif de numerical Python) est la bibliothèque indispensable pour le calcul scientifique avec Python.

Cette bibliothèque est utile pour manipuler des matrices ou tableaux multidimensionnels ainsi que les fonctions mathématiques opérant sur ces tableaux.


Les bases de l’utilisation de numpy

Il faut au départ importer le package numpy avec l’instruction recommandée suivante :

Toutes les fonctions de NumPy seront alors préfixées par np.

Le package NumPy permet la manipulation simple et efficace des tableaux en ajoutant à Python le type array similaire à une liste (type list). Mais contrairement aux listes, les tableaux Numpy ne peuvent contenir que des membres d’un seul type.

Pour créer un tableau Numpy, on peut convertir une liste avec la fonction array():

Le deuxième argument est optionnel et spécifie le type des éléments du tableau :

Si dans la liste de départ, il y a des données de types différents, Numpy essaiera de les convertir toutes au type le plus général. Par exemple, les entiers int seront convertis en nombres à virgule flottante float :

Un tableau peut être multidimensionnel ; ici 2 dimensions :

Comme pour les listes, on peut accéder aux éléments d’un tableau (attention, comme pour les listes, les indices des éléments commencent à zéro) :

Et le slicing (découpage) extrait les tableaux :

Dans l’instruction [début:fin:pas], deux des arguments peuvent être omis : par défaut l’indice de début vaut 0 (le 1er élément du tableau), et le pas vaut 1.

Un pas négatif inversera l’ordre du tableau :

Et avec un début négatif, la lecture commence par la fin :

Pour un tableau bi-dimensionnel, on peut bien-sûr travailler avec les deux indices :

Et on peut modifier les valeurs d’un tableau :


En fait, un tableau multidimensionnel est représenté par une liste de listes, et au final, un tableau bi-dimensionnel (lignes et colonnes) n’est rien d’autre qu’une liste de lignes, une ligne étant une liste de nombres.

On peut alors facilement créer un tableau bi-dimensionnel avec la fonction range() :

Ce qui donne le tableau suivant :

Avec :


Cependant, Numpy dispose de plusieurs fonctions pour créer directement des tableaux :

. Zeros()

# Un tableau bi-dimensionnel de taille 1×10, rempli d’entiers qui valent 0

. Ones()

# Un tableau bi-dimensionnel de taille 3×5, rempli de nombres à virgule flottante de valeur 1

. full()

# Un tableau bi-dimensionnel de taille 3×5, rempli de 2

. arange()

# Un tableau bi-dimensionnel de taille 1×10, rempli d’une séquence linéaire d’entiers

# Un tableau rempli d’une séquence linéaire de nombres à virgule flottante

# Un tableau rempli d’une séquence linéaire d’entiers par pas de 2

# Un tableau rempli d’une séquence linéaire de nombres à virgule flottante par pas de 0.1

Remarque :

Dans l’instruction np.arange(début:fin:pas), deux des arguments peuvent être omis :

. début : par défaut l’indice de début vaut 0 (le 1er élément du tableau)

. pas : par défaut le pas vaut 1.

Le dernier élément du tableau est l’argument fin auquel il faut retrancher le pas.

. linspace()

Comme il y quelques subtilités avec la fonction arange() quant au dernier élément, pour éviter tout problème, la fonction linspace(premier,dernier,n) renvoie un array commençant par premier, se terminant par dernier avec n éléments.

. reshape ()

La fonction reshape() permet de redimensionner un tableau. Il faut cependant que le nombre d’éléments reste le même.

NumPy dispose d’un grand nombre de fonctions mathématiques qui peuvent être appliquées directement à un tableau. Dans ce cas, la fonction est appliquée à chacun des éléments du tableau.



Les fonctions mathématiques couramment utilisées sont :

. numpy.sin(x)                       sinus

. numpy.cos(x)                      cosinus

. numpy.tan(x)                      tangente

. numpy.arcsin(x)                 arcsinus

. numpy.arccos(x)                arccosinus

. numpy.arctan(x)                arctangente

. x**n                                      x à la puissance n, exemple : x**2

. numpy.sqrt(x)                     racine carrée

. numpy.exp(x)                     exponentielle

. numpy.log(x)                      logarithme népérien

. numpy.abs(x)                      valeur absolue

. numpy.around(x,n)           arrondi à n décimales


On va donc pouvoir appliquer n’importe quelle fonction mathématique à un tableau de données x de façon à obtenir la caractéristique y=f(x).

Cette caractéristique pourra être tracé à l’aide de la bibliothèque matplolib.