Dans ce tutoriel, nous découvrirons les matrices Python. En Python, un objet matriciel est similaire aux listes imbriquées car elles sont multidimensionnelles. Nous verrons comment créer une matrice à l'aide de tableaux Numpy. Suite à cela, nous verrons diverses méthodes et exemples d’opérations matricielles pour une meilleure compréhension.
Qu'est-ce qu'une matrice en Python ?
Une matrice en Python est un tableau Numpy rectangulaire. Ce tableau doit être bidimensionnel. Il contient des données stockées dans les lignes et colonnes du tableau. Dans une matrice Python, les séries horizontales d'éléments sont appelées « lignes », tandis que les séries verticales d'éléments sont appelées « colonnes ». Les lignes et les colonnes sont empilées les unes sur les autres, tout comme une liste imbriquée. Si une matrice contient r nombre de lignes et c nombre de colonnes, où r et c sont des entiers positifs, alors r x c détermine l'ordre de cet objet matriciel.
Nous pouvons stocker des chaînes, des entiers et des objets d'autres types de données dans une matrice. Les données sont stockées dans les piles de lignes et de colonnes d'une matrice. La matrice est une structure de données cruciale pour les calculs en mathématiques et en sciences. En Python, nous considérons une liste de listes ou une liste imbriquée comme une matrice puisque Python n'inclut aucun type intégré pour un objet matriciel.
Au cours de ce didacticiel, nous passerons en revue la liste suivante de méthodes d'opération matricielle.
- Ajout de matrice
- Multiplication matricielle
- Opérateur de multiplication matricielle
- Multiplication matricielle sans Numpy
- Matrice inverse
- Transposition matricielle
- Matrice en tableau
Comment fonctionnent les matrices en Python ?
Nous écrivons les données dans un tableau à deux dimensions pour créer une matrice. Cela se fait comme suit :
Exemple
[ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ]
Il affiche une matrice comportant 3 lignes et 5 colonnes, sa dimension est donc 3×5. Les objets de type de données entiers constituent les données de cette matrice. Row1, la première ligne, a des valeurs (2, 3, 5, 7, 6), tandis que Row2 a des valeurs (3, 2, 6, 7, 2) et Row3 a des valeurs 5, 7, 2, 6, 1. Concernant colonnes, Colonne1 a des valeurs (2, 3, 5), Colonne2 a des valeurs (3, 2, 7), et ainsi de suite.
Exemple
[ 0, 0, 1 0, 1, 0 1, 0, 0 ]
Il affiche une matrice comportant 3 lignes et 3 colonnes, sa dimension est donc 3×3. De telles matrices ayant des lignes et des colonnes égales sont appelées matrices carrées.
De même, Python permet aux utilisateurs de stocker leurs données dans une matrice dimensionnelle m x n. Nous pouvons effectuer l'addition de matrices, la multiplication, la transposition et d'autres opérations sur une structure de type matricielle.
L'implémentation d'un objet matriciel en Python n'est pas simple. Nous pouvons créer une matrice Python en utilisant des tableaux et les utiliser de la même manière.
Tableau NumPy
Le logiciel de calcul scientifique NumPy prend en charge un objet tableau robuste à N dimensions. L'installation de NumPy est une condition préalable à son utilisation dans notre programme.
NumPy peut être utilisé et importé après l'installation. Connaître les bases de Numpy Array sera utile pour comprendre les matrices.
Les tableaux ayant plusieurs dimensions d'éléments sont fournis par NumPy. Voici une illustration :
Code
# Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating a numpy array array = np.array([4, 6, 'Harry']) print(array) print('Data type of array object: ', type(array))
Sortir:
['4' '6' 'Harry'] Data type of array object:
Comme nous pouvons le voir, les tableaux Numpy appartiennent à la classe ndarray.
Exemple pour créer une matrice à l'aide de Numpy Array
Pensez au scénario dans lequel nous créons un enregistrement des notes des élèves. Nous enregistrerons le nom et les notes de l'étudiant dans deux matières, la programmation Python et Matrix. Nous allons créer une matrice bidimensionnelle à l'aide d'un tableau numpy, puis la remodeler.
Code
# Python program to create a matrix using numpy array # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) print('The matrix is: ', matrix)
Sortir:
The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']]
Exemple pour créer une matrice à l'aide de la méthode Numpy Matrix
Nous pouvons utiliser numpy.matrix pour créer une matrice 2D.
Code
# Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating a matrix matrix = np.matrix('3,4;5,6') print(matrix)
Sortir:
renommer le dossier Linux
[[3 4] [5 6]]
Accéder aux valeurs d'une matrice
Les indices d'une matrice peuvent être utilisés pour accéder aux éléments qui y sont stockés. Les données stockées dans une matrice sont accessibles en utilisant la même approche que celle que nous utilisons pour un tableau bidimensionnel.
Code
# Python program to access elements of a matrix # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) # Accessing record of Itika print( matrix[0] ) # Accessing marks in the matrix subject of Andrew print( 'Andrew's marks in Matrix subject: ', matrix[3][2] )
Sortir:
['Itika' '89' '91'] Andrew's marks in Matrix subject: 91
Méthodes pour créer un tableau Numpy 2D ou une matrice
Il existe plusieurs méthodes pour créer un tableau NumPy bidimensionnel et donc une matrice. Fournir des entrées pour les lignes et les colonnes
Nous pouvons fournir des nombres entiers, des flottants ou même des nombres complexes. En utilisant l'attribut dtype de la méthode array, nous pouvons spécifier le type de données souhaité.
Code
# Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating numpy arrays array1 = np.array([[4, 2, 7, 3], [2, 8, 5, 2]]) print('Array of data type integers: ', array1) array2 = np.array([[1.5, 2.2, 3.1], [3, 4.4, 2]], dtype = 'float') print('Array of data type float: ', array2) array3 = np.array([[5, 3, 6], [2, 5, 7]], dtype = 'complex') print('Array of data type complex numbers: ', array3)
Sortir:
Array of data type integers: [[4 2 7 3] [2 8 5 2]] Array of data type float: [[1.5 2.2 3.1] [3. 4.4 2. ]] Array of data type complex numbers: [[5.+0.j 3.+0.j 6.+0.j] [2.+0.j 5.+0.j 7.+0.j]]
Tableau ayant des zéros et des uns
Code
# Python program to show how to create a Numpy array having zeroes and ones # Importing numpy import numpy as np # Creating numpy arrays zeores_array = np.zeros( (3, 2) ) print(zeores_array) ones_array = np.ones( (2, 4), dtype=np.int64 ) print(ones_array)
Sortir:
[[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]]
Ici, nous avons spécifié dtype sur 64 bits.
Utilisation des méthodes arange() et shape()
Code
# Python program to show how to create Numpy array using arrange() and shape() methods # Importing numpy import numpy as np # Creating numpy arrays array1 = np.arange( 5 ) print(array1) array2 = np.arange( 6 ).reshape( 2, 3 ) print(array2)
Sortir:
[0 1 2 3 4] [[0 1 2] [3 4 5]]
Opérations matricielles Python
Ajout de matrice Python
Nous ajouterons les deux matrices et utiliserons la boucle for imbriquée à travers les matrices données.
Code
# Python program to add two matrices without using numpy # Creating matrices in the form of nested lists matrix1 = [[23, 43, 12], [43, 13, 55], [23, 12, 13]] matrix2 = [[4, 2, -1], [5, 4, -34], [0, -4, 3]] matrix3 = [[0,1,0], [1,0,0], [0,0,1]] matrix4 = [[0,0,0], [0,0,0], [0,0,0]] matrices_length = len(matrix1) #Adding the three matrices using nested loops for row in range(len(matrix1)): for column in range(len(matrix2[0])): matrix4[row][column] = matrix1[row][column] + matrix2[row][column] + matrix3[row][column] #Printing the final matrix print('The sum of the matrices is = ', matrix4)
Sortir:
The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]]
Multiplication de matrice Python
Opérateur de multiplication matricielle Python
En Python, @ est connu sous le nom d'opérateur de multiplication. Voyons un exemple où nous utiliserons cet opérateur pour multiplier deux matrices.
Code
# Python program to show how to create a matrix using the matrix method. # importing numpy import numpy as np # Creating the matrices matrix1 = np.matrix('3,4;5,6') matrix2 = np.matrix('4,6;8,2') # Usng multiplication operator to multiply two matrices print(matrix1 @ matrix2)
Sortir:
[[44 26] [68 42]]
Multiplication de matrice Python sans utiliser Numpy
Une autre façon de multiplier deux matrices consiste à utiliser des boucles imbriquées. Voici un exemple à montrer.
Code
# Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating two matrices matrix1 = [[4, 6, 2], [7, 4, 8], [6, 2, 7]] matrix2 = [[4, 6, 8, 2], [6, 5, 3, 7], [7, 3, 7, 6]] # Result will be a 3x4 matrix output = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # Iterating through the rows of matrix1 for i in range(len(matrix1)): # iterating through the columns of matrix2 for j in range(len(matrix2[0])): # iterating through the rows of matrix2 for k in range(len(matrix2)): output[i][j] += matrix1[i][k] * matrix2[k][j] for row in output: print(row)
Sortir:
[66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68]
Python Matrice Inverse
Lorsqu'une équation doit être résolue pour obtenir la valeur d'une variable inconnue qui satisfait les équations, l'inverse d'une matrice, qui est simplement l'inverse de la matrice comme nous le ferions en mathématiques ordinaires, est calculé. L'inverse d'une matrice est la matrice qui donne la matrice d'identité lorsque l'on multiplie par la matrice d'origine. Seule une matrice non singulière peut avoir un inverse. Une matrice non singulière a un déterminant non nul.
Code
# Python program to show how to calculate the inverse of a matrix # Importing the required library import numpy as np # Creating a matrix A = np.matrix('3, 4, 6; 6, 2, 7; 6, 4, 6') # Calculating the inverse of A print(np.linalg.inv(A))
Sortir:
[[-3.33333333e-01 -7.40148683e-17 3.33333333e-01] [ 1.25000000e-01 -3.75000000e-01 3.12500000e-01] [ 2.50000000e-01 2.50000000e-01 -3.75000000e-01]]
Transposition de matrice Python
Transposition matricielle Python sans Numpy
La transposition d'une matrice implique de changer les lignes et les colonnes. Il porte le symbole X'. Nous placerons l'objet dans la ligne i et la colonne j de la matrice X dans la ligne j et la colonne i de la matrice X'. Par conséquent, X' deviendra une matrice 4x3 si la matrice originale X est une matrice 3x4.
Code
# Python program to find the transpose of a matrix using nested loops # Creating a matrix matrix = [[4, 6, 7, 8], [3, 7, 2, 7], [7, 3, 7, 5]] result = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] # iterating through the rows for i in range(len(matrix)): # iterating through the columns for j in range(len(matrix[0])): result[j][i] = matrix[i][j] for row in result: print(row)
Sortir:
[4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5]
Transposition matricielle Python à l'aide de Numpy
Nous pouvons utiliser la méthode matrice.transpose() dans Numpy pour obtenir la transposition de la matrice.
Code
# Python program to find the transpose of a matrix # importing the required module import numpy as np # Creating a matrix using matrix method matrix = np.matrix('[5, 7, 6; 4, 2, 4]') #finding transpose using matrix.transpose method transpose = matrix.transpose() print(transpose)
Sortir:
[[5 4] [7 2] [6 4]]
Conversion d'une matrice Python en tableau
Nous pouvons utiliser les fonctions Ravel et Flatten pour convertir une matrice Python en un tableau Python.
Code
# Python program to convert a matrix to an array # importing the required module import numpy as np # Creating a matrix using numpy matrix = np.matrix('[4, 6, 7; 5, 2, 6; 6, 3, 6]') # Using ravel() function to covert matrix to array array = matrix.ravel() print(array) # Using flatten() function to covert matrix to array array = np.asarray(matrix).flatten() print(array) # Using reshape() function to covert matrix to array array = (np.asarray(matrix)).reshape(-1) print(array)
Sortir:
[[4 6 7 5 2 6 6 3 6]] [4 6 7 5 2 6 6 3 6] [4 6 7 5 2 6 6 3 6]