Elementweise Multiplikation in NumPy
-
Elementweise Multiplikation von Matrizen in Python mit der Methode
np.multiply()
-
Elementweise Multiplikation von Matrizen in Python mit dem Operator
*
In diesem Tutorial werden verschiedene Methoden zum Ausführen einer elementweisen Matrixmultiplikation in Python erläutert. Bei der elementweisen Matrixmultiplikation (auch als Hadamard-Produkt bekannt) wird jedes Element der ersten Matrix mit dem entsprechenden Element der zweiten Matrix multipliziert.
Bei der elementweisen Matrixmultiplikation sollten beide arrayen die gleichen Abmessungen haben. Die resultierende Matrix c
der elementweisen Matrixmultiplikation a*b = c
hat immer die gleiche Dimension wie die in a
und b
.
Wir können die elementweise Multiplikation in Python mit den folgenden Methoden durchführen:
Elementweise Multiplikation von Matrizen in Python mit der Methode np.multiply()
Die Methode np.multiply(x1, x2)
der Python-Bibliothek NumPy
verwendet zwei Matrizen x1
und x2
als Eingabe, führt bei der Eingabe eine elementweise Multiplikation durch und gibt die resultierende Matrix als Eingabe zurück.
Daher müssen wir die beiden Matrizen als Eingabe an die Methode np.multiply()
übergeben, um eine elementweise Eingabe durchzuführen. Der folgende Beispielcode zeigt, wie Sie mit np.multiply()
eine elementweise Multiplikation zweier Matrizen in Python durchführen.
import numpy as np
a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])
print(np.multiply(a1, a2))
Ausgabe:
[[ 180 1196 46 119 44]
[ 39 40 72 9 24]]
Wir können auch die elementweise Multiplikation bestimmter Zeilen, Spalten oder Untermatrizen der Matrizen mit der Methode np.multiply()
durchführen. Wir müssen die spezifischen Zeilen, Spalten oder Untermatrizen der Matrizen an die Methode np.multiply()
übergeben. Wie bei der elementweisen Matrixmultiplikation sollte auch die Größe der Zeilen, Spalten oder Untermatrizen, die als erster und zweiter Operand für die Multiplikation übergeben werden, gleich sein.
Der folgende Beispielcode zeigt, wie die elementweise Multiplikation von Zeilen, Spalten oder Untermatrizen zweier Matrizen in Python implementiert wird.
import numpy as np
a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])
print(np.multiply(a1[0, :], a2[1, :]))
print(np.multiply(a1[1, :], a2[0, :]))
print(np.multiply(a1[:, 3], a2[:, 1]))
Ausgabe:
[156 368 207 21 8]
[ 45 130 16 51 132]
[182 24]
Elementweise Multiplikation von Matrizen in Python mit dem Operator *
Wir können auch den Operator *
mit den Matrizen verwenden, um eine elementweise Matrixmultiplikation durchzuführen. Der Operator *
gibt bei Verwendung mit den Matrizen in Python eine resultierende Matrix der elementweisen Matrixmultiplikation zurück.
Der folgende Beispielcode zeigt, wie der Operator *
verwendet wird, um die elementweise Matrizenmultiplikation in Python durchzuführen:
a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])
print(a1 * a2)
Ausgabe:
[[ 180 1196 46 119 44]
[ 39 40 72 9 24]]
Wir können den Operator *
auch verwenden, um die elementweise Multiplikation von Zeilen, Spalten und Submatrizen der Matrizen in Python folgendermaßen durchzuführen.
import numpy as np
a1 = np.array([[12, 46, 23, 7, 2], [3, 5, 8, 3, 6]])
a2 = np.array([[15, 26, 2, 17, 22], [13, 8, 9, 3, 4]])
print(a1[0, :] * a2[1, :])
print(a1[1, :] * a2[0, :])
print(a1[:, 3] * a2[:, 1])
Ausgabe:
[156 368 207 21 8]
[ 45 130 16 51 132]
[182 24]