HOWTO · NumPy
Multiplizieren Sie das Array mit Scalar in Python
Mit NumPy lassen sich alle Elemente eines Arrays in Python mit einem Skalar multiplizieren: entweder mit dem Operator `*` oder mit der Funktion `numpy.multiply()`.
Auf dieser Seite
Um jedes Element eines NumPy-Arrays in Python mit einem Skalar zu multiplizieren, verwenden Sie entweder den Operator * oder numpy.multiply(). Beide führen eine elementweise Multiplikation aus und geben ein Array mit den jeweiligen Produkten zurück. Die folgenden Beispiele zeigen beide Varianten mit ihrer beobachteten Ausgabe.
Ein NumPy-Array mit * mit einem Skalar multiplizieren
Verwenden Sie *, wenn der Ausdruck wie eine gewöhnliche Rechenoperation lesbar sein soll. NumPy wendet den Skalar auf jedes Array-Element an; eine Schleife im Python-Code ist dafür nicht erforderlich. Die Variable result erhält das berechnete Array, während values für spätere Berechnungen verfügbar bleibt.
Führen Sie dieses eigenständige Beispiel in einer Umgebung aus, in der NumPy installiert ist:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
import numpy as np
values = np.array([2, 4, 6])
scale = 3
result = values * scale
print(result)
Beobachtete Ausgabe:
[ 6 12 18]
Bei einem Array [2, 4, 6] und dem Skalar 3 ergeben sich als beobachtete elementweise Produkte 6, 12 und 18. NumPy gibt dieses Integer-Array mit Abständen aus, die die einstelligen Werte ausrichten. Derselbe Ausdruck funktioniert mit Integer- und Gleitkommawerten; der Datentyp des Ergebnisses richtet sich nach den Rechen- und Typumwandlungsregeln von NumPy.
Ein NumPy-Array mit numpy.multiply() mit einem Skalar multiplizieren
Rufen Sie numpy.multiply(array, scalar) auf, wenn die ausdrückliche Benennung der Operation den Code verständlicher oder leichter kombinierbar macht. Die Funktion nimmt das Array und den Skalar als ihre beiden Operanden und führt für diesen Anwendungsfall dieselbe elementweise Multiplikation wie * aus. Führen Sie auch dieses eigenständige Beispiel in einer Umgebung aus, in der NumPy installiert ist:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
import numpy as np
values = np.array([1.5, 2.0, 4.5])
scale = 2
result = np.multiply(values, scale)
print(result)
Beobachtete Ausgabe:
[3. 4. 9.]
Hier wird jeder Wert mit 2 multipliziert; die beobachtete Ausgabe lautet [3. 4. 9.]. NumPy gibt diese Gleitkommawerte ohne nachgestellte Null aus. Beide Beispiele weisen das Ergebnis einer neuen Variablen zu, statt das ursprüngliche Array direkt zu ändern. Wenn Sie die ursprünglichen Werte behalten möchten, verwenden Sie weiterhin values; für einen anderen Ablauf können Sie das Ergebnis gezielt wieder zuweisen.
Zwischen * und numpy.multiply() wählen
Wählen Sie beim Multiplizieren eines Arrays mit einem Skalar die Schreibweise, die den umgebenden Code am klarsten macht. Der Operator * ist kompakt und in einem Rechenausdruck geläufig. numpy.multiply() macht die Operation als Funktionsaufruf ausdrücklich erkennbar. Für Broadcasting hat keine der beiden Varianten in diesem Fall einen besonderen Vorteil: Beide verwenden die Regeln von NumPy für elementweise Multiplikation.
Ein Skalar lässt sich über das Array übertragen, weil er auf jedes Element angewendet werden kann. Allgemeiner kann NumPy Arrays mit unterschiedlichen Formen kombinieren, wenn ihre Dimensionen nach den Broadcasting-Regeln kompatibel sind. Dimensionen sind kompatibel, wenn sie gleich sind oder eine davon 1 ist; verglichen wird von rechts nach links. Fehlende führende Dimensionen gelten als 1. Im Broadcasting-Leitfaden von NumPy finden Sie die vollständigen Regeln und weitere Beispiele. So kann ein Array der Form (2, 3) elementweise mit einem Array der Form (3,) multipliziert werden, da dessen Dimension an der letzten Dimension ausgerichtet wird. Formen, die diese Kompatibilitätsregeln nicht erfüllen, lassen sich auf diese Weise nicht elementweise multiplizieren. Broadcasting macht beliebige Formen nicht kompatibel.
Diese Operationen berechnen elementweise Produkte; sie führen keine Matrixmultiplikation aus. Für die Multiplikation mit einem Skalar verwenden Sie values * scale oder numpy.multiply(values, scale) und untersuchen oder nutzen anschließend das zurückgegebene Array.