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.
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]
Mit verschachtelten for-Schleifen führen wir eine Multiplikation an zwei Matrizen durch und speichern das Ergebnis in der dritten Matrix.
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)
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).
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)
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.
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)
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!