Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Programm zum Multiplizieren zweier Matrizen mithilfe mehrdimensionaler Arrays

Python-Programm zum Multiplizieren zweier Matrizen mithilfe mehrdimensionaler Arrays

WBOY
WBOYnach vorne
2023-09-11 17:09:07616Durchsuche

Python-Programm zum Multiplizieren zweier Matrizen mithilfe mehrdimensionaler Arrays

Eine Matrix ist eine Menge von Zahlen, die in Zeilen und Spalten angeordnet sind. Eine Matrix mit m Zeilen und n Spalten wird als m X n-Matrix bezeichnet, und m und n werden als ihre Dimensionen bezeichnet. Eine Matrix ist ein zweidimensionales Array, das in Python mithilfe von Listen oder NumPy-Arrays erstellt wird.

Im Allgemeinen kann die Matrixmultiplikation durch Multiplikation der Zeilen der ersten Matrix mit den Spalten der zweiten Matrix erfolgen. Dabei sollte die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein.

Eingabe- und Ausgabeszenarien

Angenommen, wir haben zwei Matrizen A und B, die Abmessungen dieser beiden Matrizen betragen 2X3 bzw. 3X2. Die resultierende Matrix nach der Multiplikation hat 2 Zeilen und 1 Spalte.

              	      [b1, b2]			
[a1, a2, a3]    *     [b3, b4]		= 	[a1*b1+a2*b2+a3*a3]
[a4, a5, a6]          [b5, b6]			[a4*b2+a5*b4+a6*b6]

Darüber hinaus können wir auch eine elementweise Multiplikation von Matrizen durchführen. In diesem Fall müssen beide Eingabematrizen die gleiche Anzahl an Zeilen und Spalten haben.

[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]

For-Schleife verwenden

Mit verschachtelten for-Schleifen führen wir eine Multiplikation an zwei Matrizen durch und speichern das Ergebnis in der dritten Matrix.

Beispiel

In diesem Beispiel initialisieren wir eine Ergebnismatrix mit ausschließlich Nullen, um die Multiplikationsergebnisse zu speichern.

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

Ausgabe

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]

Die Anzahl der Zeilen und Spalten der ersten Matrix (matrix_a) beträgt 3 und die Anzahl der Zeilen und Spalten der zweiten Matrix (matrix_b) beträgt 3. Die resultierende Matrix nach der Multiplikation dieser beiden Matrizen (Matrix_a, Matrix_b) hat 3 Zeilen und 4 Spalten (d. h. 3X4).

Beispiel

Die Funktion numpy.array() wird hier verwendet, um die Matrix zu erstellen, sodass wir einfach eine Matrixmultiplikation mit dem @-Operator durchführen können.

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) 

Ausgabe

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]]

Der Multiplikationsoperator @ ist ab der Python-Version 3.5 verfügbar, andernfalls können wir die Funktion numpy.dot() verwenden.

Beispiel

In diesem Beispiel führen wir eine elementweise Multiplikation zweier Numpy-Arrays mit dem Sternchenoperator (*) durch.

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)

Ausgabe

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]]

Das obige ist der detaillierte Inhalt vonPython-Programm zum Multiplizieren zweier Matrizen mithilfe mehrdimensionaler Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen