Chapitre7 Python
Chapitre7 Python
Chapitre7 Python
Plan
I. Introduction
II. La bibliothèque NumPy
III. Création des tableaux
IV. Manipulation des tableaux
V. Calcul vectoriel et matriciel
VI. Tri des tableaux
1
I. Introduction
2
II. La bibliothèque NumPy
3
III. Création des tableaux
Exemples
4
III. Création des tableaux
Exemples
10
5
III. Création des tableaux
La fonction np.zeros() : Création d’un vecteur ou d’une matrice dont tous les
éléments sont des zéros et dont la taille est indiquée dans les paramètres de
la fonction.
La fonction np.ones() : Création d’un vecteur ou d’une matrice dont tous les
éléments sont des 1 et dont la taille est indiquée dans les paramètres de la
fonction.
La fonction np.diag() : Création d’une matrice diagonale dont les coefficients
diagonaux sont les éléments d’une liste, d’un vecteur ou d’un tuple passé en
paramètre.
La fonction np.eye() : Création d’une matrice identité.
11
6
III. Création des tableaux
7
III. Création des tableaux
8
IV. Manipulation des tableaux
Slice Résultat
T[i:j] Sous tableau de T à partir de T[i] jusqu’à T[j-1]
T[:i] Sous tableau de T à partir de T[0] jusqu’à T[i-1].
T[i:] Sous tableau de T à partir de T[i] jusqu’à T[len(T)-1].
T[i:j:k] Sous tableau de T à partir de T[i] jusqu’à T[j-1] avec le pas k.
T[::i] Sous tableau à partir de T[0] jusqu’à la fin du tableau T avec le pas i.
T[::-i] Même résultat du slice précédent mais à l’envers.
18
9
IV. Manipulation des tableaux
Exemples de slicing
>>>T=np.arange(10)
>>> T
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> T[2:] #extraction des éléments à partir de T[2] jusqu’à T[9]
array([2, 3, 4, 5, 6, 7, 8, 9])
>>> T[:3] #extraction des 3 premiers éléments de T
array([0, 1, 2])
>>> T[::-1] #inversion de T
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
>>>M=np.array([[1, 2, 3],[4, 5, 6],[7,8,9]])
>>> M
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> M[2,:] #extraction de la troisième ligne de M
array([7, 8, 9])
>>>M[:,1] # extraction de la deuxième colonne de M
array([2, 5, 8])
>>> M[:2,:] # extraction des deux premières lignes de M
array([[1, 2, 3],
[4, 5, 6]])
>>> M[1:,:2] # extraction des deux premiers éléments de la 2ème et 3ème lignes de M
array([[4, 5],
19
[7, 8]])
Liste d’indices : Le slicing permet d’extraire des éléments qui ont des indices
successifs dans une dimension ou qui sont espacés d’une même distance si
un pas d’incrémentation est spécifié. On peut effectuer une extraction
d’éléments quelconques en utilisant une liste d’indices pour chaque
dimension (c’est-à-dire spécifier une liste d’indices pour les lignes et/ou une
autre pour les colonnes d’éléments à extraire dans le cas d’une matrice).
Exemples
>>>T=np.array([21,2,8,9,4,17,3])
>>>a=[0,4,5,1] #liste des indices
>>> T[a]
array([21, 4, 17, 2])
>>>M=np.array([[1, 2, 3],[4, 5, 6],[7,8,9],[10,11,12]])
>>> l=[3,2]
>>> c=[0,2]
>>> M[l]
array([[10, 11, 12],
[ 7, 8, 9]])
>>> M[c]
array([[1, 2, 3],
[7, 8, 9]])
>>> M[l,c]
array([10, 9]) 20
10
IV. Manipulation des tableaux
21
22
11
IV. Manipulation des tableaux
12
IV. Manipulation des tableaux
26
13
IV. Manipulation des tableaux
27
28
14
IV. Manipulation des tableaux
30
15
IV. Manipulation des tableaux
Exemples
>>>T=np.array([21,2,8,9,4,17,3])
>>>np.where(T>=9) #recherche des indices des éléments de T qui sont >=9
(array([0, 3, 5], dtype=int32),)
>>> M=np.array([[-1,2,3],[4,-5,6],[7,-8,9]])
>>> np.where(M<2) #recherche des indices des éléments de M qui sont <2
(array([0, 1, 2], dtype=int32), array([0, 1, 1], dtype=int32))
>>> np.extract(T>=9,T) #recherche des éléments de T qui sont >=9
array([21, 9, 17])
>>> np.extract(M<2,M) #recherche des éléments de M qui sont <2
array([-1, -5, -8])
31
32
16
V. Calcul vectoriel et matriciel
Exemples
>>> T=np.arange(6); >>> T2=np.array([1,2,-3])
>>>T1=np.arange(7,13) >>> M*T2
>>> T array([[ 1, 4, -9],
array([0, 1, 2, 3, 4, 5]) [ 4, 10, -18]]
>>> T1 >>> M*T
array([ 7, 8, 9, 10, 11,12]) Traceback (most recent call last):
>>> T+5 File "<pyshell#270>", line 1, in <module>
array([ 5, 6, 7, 8, 9, 10]) M*T
>>>T+T1 ValueError: operands could not be broadcast
array([ 7, 9, 11, 13, 15, 17]) together with shapes (2,3) (6,)
>>> M=np.array([[1,2,3],[4,5,6]]) M2=np.array([[1,0],[2,3],[-1,-2],[3,1]])
>>> M*3 >>> np.shape(M)
array([[ 3, 6, 9], (2, 3)
[12, 15, 18]]) >>> np.shape(M2)
>>> M1=np.array([[0,1,2],[-1,-2,0]]) (4, 2)
>>> M*M1 >>>M2*M
array([[ 0, 2, 6], Traceback (most recent call last):
[ -4, -10, 0]]) File "<pyshell#279>", line 1, in <module>
M2*M
ValueError: operands could not be broadcast
together with shapes (4,2) (2,3)
33
17
V. Calcul vectoriel et matriciel
35
Exemples (suite)
fonction Rôle Exemple
np.trace(A) Calcul de la trace de la >>>M=np.array([[1,0],[2,3]])
matrice A. >>>np.trace(M)
4
np.linalg.det (A) Calcul du déterminant de la >>> M=np.array([[1,2,3],[1,0,2],[3,1,0]])
matrice A , avec A une >>> np.linalg.det(M)
matrice carrée. 13.0
36
18