Calcul Matriciel Module Numpy MOUKRIM ABDELAAZIZ Lycée Omar Al-Khayyam- Rabat 1ECT [email protected] 26 Décembre 2025 Module Bibliothèque Numpy Définition Un module Python est un fichier contenant du code réutilisable (fonctions,classes,variables) qui implémente une fonctionnalité spécifique,il permet d’organiser le code d’une maniére modulaire. Un module a un nom spécifié par le nom de fichier sans .py par exemple si le fichier appelé operations.py le nom du module est operations 1/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemple Exemple :. ce module définit 4 fonctions mathématiques de base ,permettant de réaliser des opérations courantes entre deux nombres : 1 # operations . py 2 3 4 5 def addition (a , b ) : " " " Retourne la somme de a et b . " " " return a + b 6 7 8 9 def soustraction (a , b ) : " " " Retourne la d i f f r e n c e entre a et b ( a - b ) . " " " return a - b 10 11 12 13 def multiplication (a , b ) : " " " Retourne le produit de a et b . " " " return a * b 14 15 16 17 18 19 20 21 22 def division (a , b ) : """ Retourne le quotient de a par b . D c l e n c h e une erreur si b est gal z ro. """ if b == 0: raise ValueError ( " La division par z r o est impossible . " ) return a / b Calcul Matriciel :Module Numpy 2/52 Module Bibliothèque Numpy Pour utiliser les objets (fonctions,variables,classes,etc)définis dans un module depuis un autre fichier ,on utilise l’instruction import Les objets du module peuvent être appelés en utilisant le nom du module suivi d’un point 1 import operations 2 3 4 5 6 print ( operations . addition (10 , 5) ) print ( operations . soustraction (10 , 5) ) print ( operations . multiplicat ion (10 , 5) ) print ( operations . division (10 , 5) ) # # # # 15 5 50 2.0 3/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Il est possible de renommer le module lors de l’importation grâce au mot-clé as 1 2 3 4 5 import operations as op print ( op . addition (4 , 2) ) print ( op . soustraction (9 , 3) ) print ( op . multiplication (3 , 7) ) print ( op . division (10 , 2) ) # # # # 6 6 21 5.0 4/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Par ailleurs ,pour aaccéder directement aux objets sans avoir à préfixer leur nom par celui du module , on peut utiliser l’instruction from ... import ,qui permet d’importer uniquement certains éléments au lieu de tout le module 1 from operations import addition , soustraction 2 3 4 print ( addition (10 , 5) ) print ( soustraction (10 , 3) ) # 15 # 7 5/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Le module math est une bibliothèque standard de python qui fournit des fonctions et constantes mathématiques avancées .Elle permet d’effectuer des opérations plus complexes que les opérations de base(+,-,/,*) 1 import math 2 3 4 5 6 7 8 print ( math . sqrt (25) ) print ( math . e ) print ( math . pi ) print ( math . factorial (6) ) print ( math . cos ( math . pi / 4) ) print ( math . log (100) ) # # # # # # 5.0 2 .71828 1828.. . 3. 141592 653... 720 0.707... ln (100) 6/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Le module matplotlib est une bibliothèque Python spécialisée dans : la visualisation de données, le tracé de courbes mathématiques, la création de graphiques (lignes, barres, histogrammes, nuages de points. . .), la génération de figures scientifiques de haute qualité. 1 2 import matplotlib . pyplot as plt import numpy as np 3 4 5 6 7 8 9 # Generation des valeurs de x x = np . linspace ( -10 , 10 , 400) # Definition de la fonction y = x ** 2 # Trace de la courbe plt . plot (x , y , label = " f ( x ) = x # 400 points entre -10 et 10 ") 10 11 12 13 14 15 16 17 18 # Ajout du titre et des labels plt . title ( " Representation de la fonction $f ( x ) = x ^2 $ " ) plt . xlabel ( " x " ) plt . ylabel ( " f ( x ) " ) # Legende plt . legend () # Affichage plt . show () 7/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Définition Une bibliothèque est un ensemble de modules regroupés pour accomplir une tâche précise. Une bibliothèque peut contenir plusieurs modules, parfois des sous-modules. 8/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemples de bibliothèques numpy : calcul numérique matplotlib : graphiques pandas : analyse de données 9/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Définition NumPy (Numerical Python) est une bibliothèque Python dédiée au calcul numérique. NumPy permet de : manipuler des tableaux numériques effectuer des calculs rapides et vectorisés travailler avec des vecteurs et des matrices NumPy est la base de nombreuses autres bibliothèques : pandas matplotlib scikit-learn Calcul Matriciel :Module Numpy 10/52 Module Bibliothèque Numpy Importation du module NumPy On peut importer ce module par l’instruction : import numpy as np 11/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction array() Définition : Après avoir importé NumPy, on peut créer des tableaux numériques à l’aide de la fonction np.array. Cette fonction prend en paramètre une liste de nombres qui seront contenus dans le tableau. Exemple : Création d’un tableau NumPy A = np.array([1, 2, 3, 4]) Le tableau A contient les valeurs : 1, 2, 3 et 4. 12/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Liste Python vs tableau NumPy Une liste Python peut contenir des elements de types differents Un tableau NumPy contient des elements de meme type Les calculs avec NumPy sont plus rapides et vectorises Avec NumPy, les operations s’effectuent sur tout le tableau sans utiliser de boucle explicite. 13/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Création de matrices avec NumPy Une matrice NumPy est un tableau à deux dimensions. Exemple : Création d’une matrice M = np.array([[1, 2, 3], [4, 5, 6]]) La matrice M possède : 2 lignes 3 colonnes 14/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Accès aux éléments d’un tableau NumPy Pour accéder à un élément d un tableau NumPy, on utilise les indices [ligne, colonne]. Les indices commencent toujours à 0 Exemple : Accès à un élément M[0, 1] Cet élément correspond à la valeur 2. Accès à une ligne : Ligne 0 M[0, :] Accès à une colonne : Colonne 1 M[:, 1] Calcul Matriciel :Module Numpy 15/52 Module Bibliothèque Numpy Notion de slicing Le slicing (ou découpage) permet d extraire une partie d un tableau sans modifier le tableau initial. Il est très utilisé avec NumPy pour : extraire certaines lignes extraire certaines colonnes travailler sur une sous-matrice 16/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Forme générale du slicing Pour un tableau NumPy, le slicing s’écrit sous la forme : Syntaxe tableau[début : fin] Règle fondamentale : l’indice début est inclus l’indice fin est exclu Autrement dit, on extrait les éléments de début jusqu à fin - 1. 17/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Slicing d un tableau à une dimension Soit le tableau NumPy suivant : Exemple A = np.array([10, 20, 30, 40, 50]) A[1:4] extrait les éléments 20, 30 et 40 A[:3] extrait les trois premiers éléments A[2:] extrait les éléments à partir de l indice 2 18/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Slicing d’un tableau à deux dimensions Pour une matrice NumPy, on utilise la notation : Syntaxe matrice[lignes, colonnes] Par défaut, si on écrit matrice[début:fin], le slicing s’applique uniquement sur les lignes. 19/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Points essentiels à retenir Les indices commencent toujours à 0 La borne de fin est toujours exclue Le slicing ne modifie pas le tableau initial Le symbole : signifie tout 20/52 Calcul Matriciel :Module Numpy Module 1 2 3 4 Bibliothèque Numpy import numpy as np tab2 = np . array ([[1 , 2 , 3] , [4 , 5 , 6] , [5 , 7 , 9]]) 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 print ( tab2 [1:]) # [[4 5 6] # [5 7 9]] print ( tab2 [: -1]) # [[1 2 3] # [4 5 6]] print ( tab2 [0:2]) # [[1 2 3] # [4 5 6]] print ( tab2 [1:2 , 0:]) # [[4 5 6]] print ( tab2 [1: , 1:2]) # [[5] # [7]] print ( tab2 [1:2 , 1: -1]) # [[5]] print ( tab2 [: , : -2]) # [[1] # [4] # [5]] 21/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction arange() Définition : La fonction np.arange() permet de créer un tableau NumPy contenant des valeurs régulièrement espacées selon un pas donné. Syntaxe : np.arange(début, fin, pas) Règles importantes : l’indice début est inclus l’indice fin est exclu 22/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemples avec arange() Exemples np.arange(0, 5) np.arange(1, 10, 2) np.arange(0, 1, 0.2) Résultats attendus : [0 1 2 3 4] [1 3 5 7 9] [0. 0.2 0.4 0.6 0.8] 23/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction linspace() Définition : La fonction np.linspace() permet de créer un tableau de nombres réels, régulièrement espacés, entre deux bornes. Contrairement à arange(), on ne fixe pas le pas, mais le nombre de valeurs. 24/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Syntaxe de linspace() Syntaxe np.linspace(début, fin, nombre_de_points) Signification des paramètres : début : première valeur du tableau (incluse) fin : dernière valeur du tableau (incluse) nombre_de_points : nombre total de valeurs générées 25/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemple simple avec linspace() Exemple np.linspace(0, 1, 5) Résultat obtenu : [0. 0.25 0.5 0.75 1.] 26/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Calcul du pas Le pas est calculé automatiquement par NumPy selon la formule : pas = fin − début nombre_de_points − 1 Exemple : 1−0 = 0.25 5−1 27/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Pourquoi utiliser linspace() très précis avec les nombres réels idéal pour les intervalles mathématiques très utilisé pour tracer des courbes évite les erreurs d’approximation de arange() 28/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction reshape() Définition : La fonction reshape() permet de modifier la forme (dimension) d un tableau NumPy sans modifier ses données. 29/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Règle fondamentale de reshape() Le nombre total d éléments du tableau doit rester identique avant et après l utilisation de reshape(). Par exemple, un tableau de 6 éléments peut être transformé en : une matrice 2 × 3 une matrice 3 × 2 30/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Syntaxe de reshape() Syntaxe tableau.reshape(nombre_de_lignes, nombre_de_colonnes) 31/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemple avec reshape() Exemple A = np.array([1, 2, 3, 4, 5, 6]) A.reshape(2, 3) Résultat obtenu Résultat obtenu : [[1 2 3] [4 5 6]] 32/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction zeros() Définition : La fonction np.zeros() permet de créer un tableau NumPy rempli uniquement de zéros. Tableau à une dimension : np.zeros(n) Tableau à deux dimensions : np.zeros((n, p)) 33/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemples avec zeros() 1 import numpy as np 2 3 4 np . zeros (4) np . zeros ((2 , 3) ) Résultat obtenu [0. 0. 0. 0.] [[0. 0. 0.] [0. 0. 0.]] 34/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction ones() Définition : La fonction np.ones() permet de créer un tableau NumPy rempli uniquement de uns. Syntaxe np.ones(n) np.ones((n, p)) 35/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemples avec ones() 1 import numpy as np 2 3 4 np . ones (5) np . ones ((2 , 3) ) Résultat obtenu [1. 1. 1. 1. 1.] [[1. 1. 1.] [1. 1. 1.]] 36/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction eye() Définition : La fonction np.eye() permet de créer une matrice identité. Une matrice identité est une matrice carrée contenant : des 1 sur la diagonale principale des 0 ailleurs Exemple np.eye(3) Résultat obtenu [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] 37/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction diag() Définition : La fonction np.diag() permet soit d’extraire la diagonale d’une matrice, soit de créer une matrice diagonale à partir d’un vecteur. 38/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Extraire la diagonale d’une matrice Code Python A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) np.diag(A) Résultat : [1 5 9] 39/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Créer une matrice diagonale Code Python 1 2 v = np . array ([1 , 2 , 3]) np . diag ( v ) Résultat : [[1 0 0] [0 2 0] [0 0 3]] 40/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Génération de matrices aléatoires NumPy permet de générer facilement des matrices aléatoires à l aide du module np.random. 41/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction rand() Définition : La fonction np.random.rand() génère des nombres réels aléatoires suivant une loi uniforme sur l’intervalle [0, 1[. Syntaxe np.random.rand(n, p) Elle génère une matrice de n lignes et p colonnes. 42/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemple avec rand() Code Python np.random.rand(2, 3) Résultat [[0.32 0.85 0.14] [0.67 0.41 0.93]] Les valeurs obtenues sont comprises entre 0 et 1. 43/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Fonction randn() Définition : La fonction np.random.randn() génère des nombres réels aléatoires suivant une loi normale centrée réduite (de moyenne 0 et de variance 1). Syntaxe np.random.randn(n, p) 44/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Exemple avec randn() Code Python np.random.randn(2, 3) Résultat [[ 1.12 -0.45 0.78] [-1.03 0.21 -0.67]] Les valeurs générées peuvent être positives ou négatives. 45/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Somme de deux matrices Principe : Deux matrices de mêmes dimensions peuvent être additionnées élément par élément. 1 2 import numpy as np 3 4 5 A = np . array ([[1 , 2] , [3 , 4]]) 6 7 8 B = np . array ([[5 , 6] , [7 , 8]]) 9 10 A + B Résultat [[ 6 8] [10 12]] 46/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Produit de deux matrices Principe : Soient deux matrices A et B telles que : A est de dimension m × n B est de dimension n × p Alors le produit matriciel A × B est défini et le résultat est une matrice de dimension : m×p Condition essentielle : Le nombre de colonnes de A doit être égal au nombre de lignes de B. Le produit matriciel se fait avec la fonction dot(). 1 A . dot ( B ) 2 Résultat [[19 22] [43 50]] 47/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Transposée d’une matrice Principe : La transposée échange les lignes et les colonnes. Code Python 1 A.T Résultat [[1 3] [2 4]] 48/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Déterminant d’une matrice Principe : Le déterminant est un nombre associé à une matrice carrée. Code Python 1 np . linalg . det ( A ) Résultat -2.0 49/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Inverse d’une matrice Condition : Une matrice doit être carrée et de déterminant non nul. Code Python 1 np . linalg . inv ( A ) Résultat [[-2. 1. ] [ 1.5 -0.5]] 50/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Définition du rang d’une matrice Définition : Le rang d’une matrice est le nombre maximal de lignes (ou de colonnes) linéairement indépendantes. Il mesure la quantité d’information indépendante contenue dans la matrice. Le rang d une matrice est inférieur ou égal au minimum du nombre de lignes et de colonnes Le rang des lignes est égal au rang des colonnes 51/52 Calcul Matriciel :Module Numpy Module Bibliothèque Numpy Calcul du rang avec NumPy NumPy propose une fonction directe pour calculer le rang. Code Python np.linalg.matrix_rank(A) Exemple A = np.array([[1, 2], [2, 4]]) Résultat : rang(A) = 1 52/52 Calcul Matriciel :Module Numpy