Elementweise Multiplikation in NumPy

Muhammad Waiz Khan 30 Januar 2023
  1. Elementweise Multiplikation von Matrizen in Python mit der Methode np.multiply()
  2. Elementweise Multiplikation von Matrizen in Python mit dem Operator *
Elementweise Multiplikation in NumPy

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]

Verwandter Artikel - NumPy Matrix