Maison >développement back-end >Tutoriel Python >Programme Python pour multiplier deux matrices à l'aide de tableaux multidimensionnels

Programme Python pour multiplier deux matrices à l'aide de tableaux multidimensionnels

WBOY
WBOYavant
2023-09-11 17:09:07699parcourir

Programme Python pour multiplier deux matrices à laide 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.

Scénarios d'entrée et de sortie

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]

Utiliser For Loop

Avec les boucles for imbriquées, nous effectuerons une multiplication sur deux matrices et stockerons le résultat dans la troisième matrice.

Exemple

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)

Sortie

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).

Exemple

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) 

Sortie

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().

Exemple

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)

Sortie

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer