Vous êtes sur la page 1sur 23

Institut Supérieur d'Informatique et de Gestion

de Kairouan

Cours Python
Niveau 2éme année

Chapitre 2 :
Les tableaux en Python

2020-2021
2

Plan
o Introduction
o Création de tableaux monodimensionnels
o Création de tableaux à n dimensions
o Indiçage et accès
o Slicing pour les vecteurs
o Slicing pour les matrices
3

Introduction
• Nous allons voir comment créer des tableaux avec
la fonction array() du module NumPy (Numerical
Python).
• Ce module permet la manipulation des vecteurs et
des matrices grâce à des fonctions de calcul numériques et
matriciels.
• • L’objet tableau en python s’appelle array et le type
correspondant est : numpy.ndarray
4

Création de tableaux monodimensionnels

• On doit commencer par l’importation de numpy.


• La création se fait avec la fonction:
numpy.array()

 >>> import numpy as np


>>> a = np.array([4,7,9])
>>> a
>>> print (a)
>>> type (a)
>>> type ([4,7,9])
5

Création de tableaux monodimensionnels

• La fonction numpy.array() permet aussi de


convertir un objet séquentiel (liste ou tuple) en un
objet de type array
• Notez qu’un objet array ne peut contenir que des
valeurs numériques.

>>> b = [4,7,9] >>> l = [1,2,3]


>>> np.array(b) >>> tf= np.array(l,float)
>>> t= np.array(b) >>> print (tf)
>>> type (t) >>> type (tf)
6

Création de tableaux monodimensionnels

 La fonction numpy.arange() qui est équivalente


à range() permet de construire un tableau à une
dimension de manière simple :
>>> np.arange(10)
>>> np.arange(10.0)
>>> np.arange(10, 0,-1)
7

 Calcul avec des opérations effectuées élément


par élément dans le tableau sans boucle!
• Ce qui est commode lorsqu’on manipule de
grandes quantités de données
>>> v=np.arange(4)
>>> v
>>> v + 1
>>> v + 0.1
>>> v * 2
>>> v * v # ou autre opération (+,-,*,**,/)
8

Création de tableaux à 2dimensions : matrices

 La création de matrices se fait avec la fonction


numpy.ndarray() (N dimensional array)
>>> M=np.ndarray((2,2))
>>> print (M)
• création d’un tableau M de dimensions (2,2) et
contenant des valeurs aléatoires, par défaut
réelles, mais on peut changer leur type à l’aide
du paramètre dtype
>>> M=np.ndarray ((2,2), dtype=int) # print (M)
9

Création de tableaux à 2dimensions : matrices

 Autre façon :
• La création de matrice se fait avec la fonction
numpy.array() et une liste de liste
>>> A=np.array([[1,2,3],[3,4,5],[5,6,7]])
>>> print (A)
• La fonction tolist() permet de récupérer une
liste de liste à partir d’une matrice
>>> A.tolist()
10

Indiçage et accès
 Même indiçage que les listes
– Tableau à une dimension (vecteur)
>>> a = np.array([4,7,9])
>>> a[0]
>>> a[-1]
>>> a[-1]=5 ; print(a)
– Tableau à deux dimensions (matrice)
>>> m=np.array([[1,2,3],[3,4,5],[5,6,7]])
>>> m[1,1]
11

Slicing pour les vecteurs


 De la même manière que les listes
>>> a=np.arange(10)
>>> print (a)
>>> a[5:]
>>> a[::2]
12

Slicing pour les matrices


• Il est possible de sélectionner une sous matrice, en


ne gardant que quelques lignes consécutives et/ou
certaines colonnes consécutives
• Si M est une matrice
– M[ : , : ]  une copie intégrale de M avec nouvelle
référence
– M[ : a , : b]  sous matrice les lignes du début jusqu’à
< a > exclu, colonne de début jusqu’à <b> exclu.
– M[ : , b ]  colonne b +1
– M[ a , : ]  ligne a +1
13

Exemple:
 >>> A=np.array([[1,2,3],[3,4,5],[5,6,7]])
>>> A[ : , :]
>>> B=A[ : , : ]
>>> id(A), id(B)
>>> A[ 1 : , 2:]
>>> A[ 1 : , 1:]
>>> A[ : , 1:]
>>> A[ : 2 , :]
>>> A[ 1 , :]
>>> A[ : , 2]
14

La fonction numpy.size()
 La fonction numpy.size() renvoie le nombre
d’éléments du tableau :
>>> a = np.array([4,7,9,12])
>>> np.size(a)
>>> m=np.array([[1,2,3],[3,4,5],[5,6,7]])
>>> np.size(m)
15

La fonction numpy.shape()
 La fonction numpy.shape() renvoie la taille du
tableau :
>>> a = np.array([4,7,9,12])
>>> np.shape(a)
>>> m=np.array([[1,2,3],[3,4,5],[5,6,7]])
>>> np.shape (m)
16

produit terme à terme


 Il est possible de réaliser le produit terme à
terme grâce à l’op *
• Mais il faut que les deux tableau soient de
même taille
>>> a=np.array([[1,2,3],[3,4,5]])
>>> b=np.array([[8,6,3],[3,4,5]])
>>> a * b
17

La fonction numpy.dot()
 La fonction numpy.dot() permet de réaliser le
produit matriciel
• rappel : le produit d’une matrice de taille (n,m)
par une matrice (m,p) donne une matrice (n,p)
>>> a=np.array([[1,2,3],[3,4,5]])
>>> b=np.array([[8],[6],[3]])
>>> np.dot(a,b)
18

Somme
 >>> a=np.array([[1,2,3],[3,4,5]])
>>> a.sum (), a.max(), a.min()
>>> a.sum(axis=0) # somme des colonnes
>>> a.sum(axis=1) # somme des lignes
>>> r= np.sqrt(a) # print (r)
>>> e= np.exp(a) # print (e)
19

La fonction numpy.zeros()
 La fonction numpy.zeros() renvoie un tableau
de 0 :
>>> z = np.zeros(4)
>>> print (z)
>>> zz=np.zeros((3,3))
>>> print (zz)
>>> zzi=np.zeros((3,3),int)
>>> print (zzi)
20

La fonction numpy.ones()
 La fonction numpy.ones() renvoie un tableau
de 1 :
>>> o = np.ones(3)
>>> print (o)
>>> oi = np.ones(3,int)
>>> print (oi)
>>> ob = np.ones(3,bool)
>>> print (ob)
21

La fonction numpy.eye(n)
 La fonction numpy.eye(n) renvoie une matrice
identité d’ordre n :
>>> i = np.eye(3)
>>> print (i)
>>> i2 = np.eye(3,dtype=int)
>>> print (i2)
22

La fonction numpy.transpose()
 La fonction numpy.transpose() renvoie la
transposée d’une matrice donnée :
>>> b=np.array([[8,6,3],[3,4,5]])
>>> t=np.transpose(b)
23
Un peu d’algèbre linéaire
Numpy.linalg : un module d’algèbre linéaire

 np.dot(M): multiplication matricielle


• np.inner (M,scalaire) : produit scalaire
• np.diag ([liste_elt]) : création matrice diagonale
• np.transpose (M): matrice transposée
• np.linalg.det(M): déterminant de la matrice
• np.linalg.inv(M) : inverse de la matrice
• np.linalg.solve(A,B) : résolution du système
linéaire A
x=B
• np.linalg.eig(M): valeurs propres, vecteurs propres
• np.linalg.eigvals(M) :valeurs propres

Vous aimerez peut-être aussi