Maison > Article > développement back-end > Programme Python pour multiplier deux matrices à l'aide de tableaux multidimensionnels
Une matrice est un ensemble de nombres disposés en lignes et en colonnes. Une matrice avec m lignes et n colonnes est appelée une matrice m X n, et m et n sont appelés ses dimensions. Une matrice est un tableau à deux dimensions créé en Python à l'aide de listes ou de tableaux NumPy.
En général, la multiplication matricielle peut être effectuée en multipliant les lignes de la première matrice par les colonnes de la deuxième matrice. Ici, le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la deuxième matrice.
Supposons que nous ayons deux matrices A et B, les dimensions de ces deux matrices sont respectivement 2X3 et 3X2. La matrice résultante après multiplication aura 2 lignes et 1 colonne.
[b1, b2] [a1, a2, a3] * [b3, b4] = [a1*b1+a2*b2+a3*a3] [a4, a5, a6] [b5, b6] [a4*b2+a5*b4+a6*b6]
De plus, nous pouvons également effectuer une multiplication de matrices par éléments. Dans ce cas, les deux matrices d'entrée doivent avoir le même nombre de lignes et de colonnes.
[a11, a12, a13] [b11, b12, b13] [a11*b11, a12*b12, a13*b13] [a21, a22, a23] * [b21, b22, b23] = [a21*b21, a22*b22, a23*b23] [a31, a32, a33] [b31, b32, b33] [a31*b31, a32*b32, a33*b33]
Avec les boucles for imbriquées, nous effectuerons une multiplication sur deux matrices et stockerons le résultat dans la troisième matrice.
Dans cet exemple, nous initialiserons une matrice de résultats avec tous des zéros pour stocker les résultats de la multiplication.
# Defining the matrix using multidimensional arrays matrix_a = [[1,2,3], [4,1,2], [2,3,1]] matrix_b = [[1,2,3,2], [2,3,6,3], [3,1,4,2]] #function for displaying matrix def display(matrix): for row in matrix: print(row) print() # Display two input matrices print('The first matrix is defined as:') display(matrix_a) print('The second matrix is defined as:') display(matrix_b) # Initializing Matrix with all 0s result = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]] # multiply two matrices for i in range(len(matrix_a)): # iterate through rows for j in range(len(matrix_b[0])): # iterate through columns for k in range(len(matrix_b)): result[i][j] = matrix_a[i][k] * matrix_b[k][j] print('The multiplication of two matrices is:') display(result)
The first matrix is defined as: [1, 2, 3] [4, 1, 2] [2, 3, 1] The second matrix is defined as: [1, 2, 3, 2] [2, 3, 6, 3] [3, 1, 4, 2] The multiplication of two matrices is: [9, 3, 12, 6] [6, 2, 8, 4] [3, 1, 4, 2]
Le nombre de lignes et de colonnes de la première matrice (matrix_a) est de 3, et le nombre de lignes et de colonnes de la deuxième matrice (matrix_b) est de 3. La matrice résultante après multiplication de ces deux matrices (matrix_a, matrice_b) aura 3 lignes et 4 colonnes (c'est-à-dire 3X4).
La fonction numpy.array() est utilisée ici pour créer la matrice afin que nous puissions simplement effectuer une multiplication matricielle en utilisant l'opérateur @.
import numpy as np # Defining the matrix using numpy array matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]]) matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]]) # Display two input matrices print('The first matrix is defined as:') print(matrix_a) print('The second matrix is defined as:') print(matrix_b) # multiply two matrices result = matrix_a @ matrix_b print('The multiplication of two matrices is:') print(result)
The first matrix is defined as: [[1 2 5] [1 0 6] [9 8 0]] The second matrix is defined as: [[0 3 5] [4 6 9] [1 8 0]] The multiplication of two matrices is: [[ 13 55 23] [ 6 51 5] [ 32 75 117]]
L'opérateur de multiplication @ est disponible à partir de la version Python 3.5+, sinon, nous pouvons utiliser la fonction numpy.dot().
Dans cet exemple, nous effectuerons une multiplication élément par élément de deux tableaux numpy à l'aide de l'opérateur astérisque (*).
import numpy as np # Defining the matrix using numpy array matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]]) matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]]) # Display two input matrices print('The first matrix is defined as:') print(matrix_a) print('The second matrix is defined as:') print(matrix_b) # multiply elements of two matrices result = matrix_a * matrix_b print('The element-wise multiplication of two matrices is:') print(result)
The first matrix is defined as: [[1 2 5] [1 0 6] [9 8 0]] The second matrix is defined as: [[0 3 5] [4 6 9] [1 8 0]] The element-wise multiplication of two matrices is: [[ 0 6 25] [ 4 0 54] [ 9 64 0]]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!