Académique Documents
Professionnel Documents
Culture Documents
1 Introduction
Une des grandes forces de Python réside dans le nombre important de bibliothèques standards
externes. Une bibliothèque est un ensemble de fonctions. Celles-ci sont regroupées et mises à
disposition afin de pouvoir être utilisées sans avoir à les réécrire.
De ce fait, les capacités du langage Python sont étendues dans de nombreux domaines : nouveaux
types de données, interactions avec le système, gestion des fichiers et des processus, multimédia,
etc.
Dans ce cours, nous allons découvrir les bibliothèques Numpy, Scipy et Matplotlib.
2 La bibliothèque Numpy
L’utilisation de listes imbriquées en tant que matrice fonctionne pour des tâches de calcul simples.
Cependant, il existe un meilleur moyen de travailler avec des matrices en Python à l’aide de la
bibliothéque NumPy.
NumPy est un package pour le calcul scientifique qui prend en charge un puissant ob-
jet tableau à N dimensions. Pour la documentation officielle, merci d’utiliser ce lien :
https://numpy.org/doc/
import numpy as np
A = np.array([[1, 2, 3],[7, 4, 5]]) # tableau d'entiers
print("A : " , A)
1
Licence 2 ESTI Université Amadou Mahtar MBOW
A : [[1 2 3] [7 4 5]]
B : [[1.1 2. 3. ] [7. 4. 5. ]]
C : [[1.+0.j 2.+0.j 3.+0.j] [7.+0.j 4.+0.j 5.+0.j]]
La taille de la matrice A est : (2, 3)
import numpy as np
x = np.arange(1 , 10 , 3 , int)
print(x)
[1 4 7]
NB : La méthode arange() peut avoir un seul paramètre.
import numpy as np
A = np.arange(6)
print("A : " , A)
A : [0 1 2 3 4 5]
import numpy as np
A = np.arange(6)
print("A : ", A)
B = A.reshape(2,3)
print("B : ", B)
A : [0 1 2 3 4 5]
B : [[0 1 2] [3 4 5]]
import numpy as np
m = np.linspace (0,10,3) # Les paramètres : début, fin, nombre d'éléments.
print(m)
[ 0. 5. 10.]
import numpy as np
unitaire = np.eye(4)
print(unitaire)
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
import numpy as np
A = np.zeros( (2, 4) ) # matrice de zéros
print("A : " , A)
B = np.ones( (4, 2) )# matrice de uns
print("B : ", B)
import numpy as np
A = np.array([ [4, 1, 7], [9, 8, -1], [10, 12, 2] ])
B = np.array([ [8, -1, 8], [2, 1, 4], [18, 2, 30] ])
C= A + B
print("A : ", A)
print("B : ", B)
print("A + B : ", C)
import numpy as np
a = np.array ([[4, 6], [2, 3]])
b = np.array ([[1, 3], [7, 3]])
print(a*b)
import numpy as np
C = A.dot(B)
print("A : ", A)
print("B : ", B)
print("A * B : ", C)
import numpy as np
A = np.array([ [3, 1, 5], [9, 8, -1], [10, 12, 2] ])
C = A.transpose()
print("A : ", A)
print("Transposée de A : ", C)
import numpy as np
A = np.array([ [3, 1, 5], [9, 8, -1], [10, 12, 2] ])
C=A.T
print("A : ", A)
print("Transposée de A : ", C)
Comme pour les listes, nous pouvons accéder aux éléments de la matrice à l’aide d’indice.
A[0] = 2
A[2] = 6
A[-1] = 10
A[0][0] = 1
A[1][2] = 9
A[-1][-1] = 19
L’accès aux lignes d’une matrice est donné par l’exemple suivant :
import numpy as np
A = np.array([ [1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19] ])
print("A[0] =", A[0]) # Première ligne
print("A[2] =", A[2]) # Troisième ligne
print("A[-1] =", A[-1]) # Dernière ligne
A[0] = [ 1 4 5 12]
A[2] = [-6 7 11 19]
A[-1] = [-6 7 11 19]
import numpy as np
A = np.array([ [1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19] ])
print("A[:,0] =",A[:,0]) # Première colonne
print("A[:,3] =", A[:,2]) # Quatrième colonne
print("A[:,-1] =", A[:,-1]) # Dernière colonne
A[:,0] = [ 1 -5 -6]
A[:,3] = [ 5 9 11]
A[:,-1] = [12 0 19]
import numpy as np
A = np.array([1, 3, 5, 7, 9, 7, 5])
# 3ème à 5ème éléments
print("A[2:5] : ", A[2:5])
# 1er au 4ème élément
print("A[:-5] : ", A[:-5])
# 6ème au dernier élément
print("A[5:] : ", A[5:])
# 1er au dernier élément
print("A[:] : ", A[:])
# inverser une liste
print("A[::-1] : ", A[::-1])
A[2:5] : [5 7 9]
A[:-5] : [1 3]
A[5:] : [7 5]
A[:] : [1 3 5 7 9 7 5]
A[::-1] : [5 7 9 7 5 3 1]
Le découpage d’une matrice peut se faire sous plusieurs formes.
L’exemple ci-dessous donne quelques méthodes de découpage d’une matrice.
import numpy as np
A = np.array([[1, 4, 5, 12, 14], [-5, 8, 9, 0, 17],[-6, 7, 11, 19, 21]])
3 La bibliothèque Scipy
Scipy est une bibliothèque qui fournit une manipulation des tableaux à N dimensions pratique et
rapide. Elle dépend Numpy.
Pour la documentation officielle, merci d’utiliser ce lien :
https://docs.scipy.org/doc/scipy/reference/tutorial/
Nous allons voir quelques méthodes de cette bibliothèque.
import numpy as np
from scipy import linalg
a = np.array([[1, 2],[3, 4]])
d = linalg.det(a)
print("Le déterminant de la matrice est : ",d)
import numpy as np
from scipy import linalg
A = np.array([[1, 3, 3],
[1, 4, 3],
[1, 3, 4]])
B = linalg.inv(A)
print("L'inverse de la matrice est ",B)
print("Le produit de la matrice et son",
"inverse est : \n", A.dot(B))
import numpy as np
from scipy import linalg
a = np.array([[3,1], [1,2]])
b = np.array([9,8])
x = linalg.solve(a,b)
print("La solution du système linéaire est :\n", x)
4 La bibliothèque Matplotlib
Pour tracer des courbes, des diagramme, Python n’est pas suffisant et nous avons besoin des
bibliothèques NumPy et matplotlib utilisées dans ce cours.
Pour la documentation officielle, merci d’utiliser ce lien : https://matplotlib.org/.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 3, 4, 6])
y = np.array([2, 3, 5, 1])
plt.plot(x,y)
On peut aussi dessiner une fonction cosinus entre 0 et 10π en utilisant 200 points.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10*np.pi, 200)
y = np.cos(x)
plt.plot(x,y)
plt.show() # Affiche la figure à l'écran
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.xlim(0, 10) # délimite la fenêtre sur l'axe des abscisses
plt.ylim(-1.5, 1.5) # délimite la fenêtre sur l'axe des ordonnées
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y, label="cos(x)")
plt.title("Fonction cosinus") # Titre de la figure
plt.legend() # Affichage de la légende
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,5*np.pi,200)
y1 = np.cos(x)
y2 = np.sin(x)
plt.plot(x, y1, label="cos(x)")
plt.plot(x, y2, label="sin(x)")
plt.legend()
plt.grid() # Affichage une grille dans la fenêtre.
plt.show()
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,5*np.pi,200)
y1 = np.cos(x)
y2 = np.sin(x)
plt.subplot(211) subplot(nbre_de_ligne,nbre_de_colonne,position)
plt.title("Fonctions sinusoidales") # Titre de la figure
plt.plot(x, y1, label="cos(x)")
plt.legend()
plt.grid()
plt.subplot(212)
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,5*np.pi,40)
y1 = np.cos(x)
y2 = np.sin(x)
plt.subplot(211)
plt.title("Fonctions sinusoidales") # Titre de la figure
plt.plot(x, y1,"r--", label="cos(x)")
plt.legend()
plt.grid()
plt.subplot(212)
plt.plot(x, y2,"b:o", label="sin(x)")
plt.legend()
plt.grid() # Affichage une grille dans la fenêtre.
plt.show()
Cet exemple montre comment créer un graphique à barres groupé et comment annoter des barres
avec des étiquettes.
fig, ax = plt.subplots()
ax.pie(serie, explode=separation, labels=labels, autopct='%1.0f%%',
shadow=True, startangle=90)
ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()