Introduction à NumPy

La bibliothèque NumPy (http://www.numpy.org/) permet d’effectuer des calculs numériques avec Python. Elle introduit une gestion facilitée des tableaux de nombres.

Pour utiliser NumPy, vous devez au préalable vous placer dans un environnement qui comprend cette bibliothèque, voir Introduction à Python.

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

>>> import numpy as np

Variables prédéfinies

Variable pi

NumPy permet d’obtenir la valeur de pi.

>>> np.pi
3.141592653589793

Tableaux - numpy.array()

Création

Les tableaux (en anglais, array) peuvent être créés avec numpy.array(). On utilise des crochets pour délimiter les listes d’éléments dans les tableaux.

>>> a = np.array([1, 2, 3, 4])

Affichage

>>> a
array([1, 2, 3, 4])
>>> type(a)
numpy.ndarray

On voit que l’on a obtenu un objet de type numpy.ndarray.

Accès aux éléments d’un tableau

Avertissement

Comme pour les listes, les indices des éléments commencent à zéro.

>>> a[0]
1
>>> a[3]
4

Tableau 2D

Il est possible de créer un tableau 2D en utilisant une liste de listes au moyen de crochets imbriqués. Les listes internes correspondent à des lignes du tableau.

>>> b = np.array([[1, 2, 3], [4, 5, 6]])

Affichage

>>> b
array([[1, 2, 3],
       [4, 5, 6]])
>>> type(b)
numpy.ndarray

Accès aux éléments d’un tableau 2D

On utilise une syntaxe avec deux indices. Le premier indice est l’indice de la ligne du tableau.

>>> b[0,1]
2
>>> b[1,2]
6

La fonction numpy.arange()

>>> m = np.arange(3, 15, 2)
>>> m
array([ 3,  5,  7,  9, 11, 13])
>>> type(m)
numpy.ndarray

Noter la différence entre numpy.arange() et range() :

>>> n = range(3, 15, 2)
>>> n
range(3, 15, 2)
>>> type(n)
range

Ceci est également à distinguer d’une liste.

>>> u = [3, 7, 10]
>>> type(u)
list

Il est possible d’obtenir des listes en combinant list et range().

>>> list(range(3, 15, 2))
[3, 5, 7, 9, 11, 13]

numpy.arange() accepte des arguments qui ne sont pas entiers.

>>> np.arange(0, 11*np.pi, np.pi)
array([  0.        ,   3.14159265,   6.28318531,   9.42477796,
        12.56637061,  15.70796327,  18.84955592,  21.99114858,
        25.13274123,  28.27433388,  31.41592654])

La fonction numpy.linspace()

numpy.linspace() permet d’obtenir un tableau 1D allant d’une valeur de départ à une valeur de fin avec un nombre donné d’éléments.

>>> np.linspace(3, 9, 10)
array([ 3.        ,  3.66666667,  4.33333333,  5.        ,  5.66666667,
        6.33333333,  7.        ,  7.66666667,  8.33333333,  9.        ])

Action d’une fonction mathématique sur un tableau

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.

>>> x = np.linspace(-np.pi/2, np.pi/2, 3)
>>> x
array([-1.57079633,  0.        ,  1.57079633])
>>> y = np.sin(x)
>>> y
array([-1.,  0.,  1.])