Académique Documents
Professionnel Documents
Culture Documents
Introduction à Numpy
1
Ces modules fournissent un ensemble d’objets ainsi qu’un groupes de fonctions permettant de manipuler nombre
d’objets de façon simple et très performantes dans le cadre du calcul scientifique.
1/9
Ingénierie numérique et simulation Numpy
Les fonctions de numpy sont alors accessibles par leur nom qualifié « np.nom_de_la_fonction ».
Important : dans toute la suite, on supposera que le module numpy a été importé de cette manière.
Quand on évoquera la fonction « array » par exemple, on pensera toujours à l’utiliser avec la syntaxe «
np.array »
Ces tableaux admettent quelques attributs: par exemple, les fonctions size et shape qui renvoient le
nombre d’éléments et la taille du tableau.
Exemple 1.2 :
>>> B = np.array( [[1,2,3] , [1,4,9]] );
>>> np.size(B)
6
>>> np.shape(B)
(2,3)
2/9
Ingénierie numérique et simulation Numpy
Remarques :
arange(a,b,inc) permet de créer un tableau 1d et fonctionne comme la fonction range(a,b,inc)
sauf que les arguments peuvent être des flottants :
>>> np.arange(0,1,0.1)
array([ 0. , 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9])
La méthode reshape permet de modifier la taille d’un tableau sous la contrainte que le nombre
total d’éléments doit rester constant. On pourra ainsi passer (dans les deux sens) d’un vecteur de
taille n à une matrice de taille (p; q) ou à une matrice de taille (r; s) à condition que n = pq = rs.
>>> np.arange(0,1,0.1).reshape(2,5)
array([[ 0. , 0.1 , 0.2 , 0.3 , 0.4] ,
[0.5 , 0.6 , 0.7 , 0.8 , 0.9]])
>>> np.identity(4)
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
La fonction eye permet de fabriquer la matrice identité ou plus généralement une matrice dont tous les
coefficients sont nuls sauf ceux d’une certaine « parallèle » à la diagonale et qui valent 1.
Exemple 1.5 :
3/9
Ingénierie numérique et simulation Numpy
La fonction diag, si elle est appliquée à un vecteur (ou à une liste, ou à un tuple) renvoie la matrice
diagonale formée sur les coefficients de ce vecteur
Exemple 1.6 :
>>> np.diag(np.ones(3))
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
Exemple 1.7 :
>>> A = np.array([[1,2,3],[4,5,6],[7,8,9]]) # un tableau 2d
>>> A
array( [ [ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ] ])
>>> np.diag(A) # extraction de la diagonale principale
array([1, 5, 9])
4/9
Ingénierie numérique et simulation Numpy
Remarques:
Comme les listes, les matrices sont des objets mutables.
>>> A=np.array([[ 1, 1],[-1, 0]])
>>> B=A
>>> A[1,1]=2
5/9
Ingénierie numérique et simulation Numpy
>>> A
array([[ 1, 1],
[-1, 2]])
>>> B
array([[ 1, 1],
[-1, 2]])
Pour éliminer ce problème, il faut faire une copie de la matrice A :
>>> A=np.array([[ 1, 1],[-1, 0]])
>>> B=np.array(A,copy=True)
>>> A[1,1]=2
>>> A
array([[ 1, 1],
[-1, 2]])
>>> B
array([[ 1, 1],
[-1, 0]])
6/9
Ingénierie numérique et simulation Numpy
array( [ [0,0,7] ,
[6,6,6] ] )
>>> s+t
array([[ 1, 2, 10],
[10, 11, 12]])
>>> s-t
array([[-1, -2, 4],
[ 2, 1, 0]])
>>> s*t
array([[ 0, 0, 21],
[24, 30, 36]])
>>> s**2
array([[ 0, 0, 49],
[36, 36, 36]])
Exemple 1.12 :
>>> np.linalg.det ( [ [1 , 2] , [3 , 4] ] )
7/9
Ingénierie numérique et simulation Numpy
-2.0000000000000004
8/9
Ingénierie numérique et simulation Numpy
array( [ [ 1 , 2 ] ,
[3, 4]])
>>>np.transpose (A)
array( [ [ 1 , 3 ] ,
[2,4]])
9/9