Berechnen des Punktprodukts zweier Listen in Python
-
Verwenden der Funktionen
sum()
undzip()
zur Berechnung des Skalarprodukts in Python -
Berechnen des Punktprodukts mit den Funktionen
map()
undmul()
in Python -
Berechnen des Punktprodukts mit
more_itertools.dotproduct
in Python - Berechnen des Punktprodukts mit NumPy in Python
![Berechnen des Punktprodukts zweier Listen in Python](/img/Python/feature-image---calculate-the-dot-product-of-two-lists-in-python.webp)
Das Skalarprodukt ist eine mathematische Operation, die auch als Skalarprodukt bekannt ist. Ein Punktprodukt ist ein algebraischer Ausdruck, der eine Folge von zwei gleichen Längen aufnimmt und als Ergebnis eine einzelne Zahl zurückgibt.
Verwenden der Funktionen sum()
und zip()
zur Berechnung des Skalarprodukts in Python
Das Skalarprodukt gleich langer Listen können wir mit der Funktion zip()
und der Funktion sum()
berechnen.
Die Funktion zip
gibt ein Zip-Objekt zurück, indem sie Elemente in einer Folge von Tupeln aus beiden Iterablen kombiniert. Andererseits gibt die Funktion sum
die Summe der Elemente in Iterables wie Listen zurück.
Da es sich bei dem Skalarprodukt mathematisch um eine Reihe von Summen und Produkten von Elementen aus der Zahlenfolge handelt, können wir aus den Kombinationen dieser beiden Listen das Skalarprodukt zweier Listen berechnen.
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(sum([i * j for (i, j) in zip(num1, num2)]))
Ausgabe:
1100
Berechnen des Punktprodukts mit den Funktionen map()
und mul()
in Python
Das Modul operator
in Python bietet eine Reihe von Funktionen zum Importieren und Verwenden von intrinsischen Operatoren in Python, um verschiedene Operationen auszuführen.
Diese Operationen umfassen logische Operationen, Folgeoperationen, mathematische Operationen und Objektvergleiche. Die Funktion mul()
führt die elementweise Multiplikation von Objekten mit Zahlenfolgen wie Datenrahmen durch.
Andererseits ist die Funktion map()
eine eingebaute Funktion, die es uns erlaubt, eine bestimmte Funktion auf alle Elemente einer Iterable anzuwenden. Schließlich würden wir auch die Funktion sum()
verwenden, um die Summe der Produkte aus den beiden Listen von Zahlenwerten zu berechnen, wie im folgenden Code gezeigt.
from operator import mul
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(sum(map(mul, num1, num2)))
Ausgabe:
1100
Berechnen des Punktprodukts mit more_itertools.dotproduct
in Python
Python more_itertools
ist eine Python-Bibliothek, die elegante Funktionen für die Arbeit mit Iterables in Python bereitstellt. Funktionen, die von der Bibliothek more_itertools
bereitgestellt werden, ermöglichen es uns, Iterables neben anderen Operationen wie Windowing, Kombinatorik und Wrapping zu gruppieren und auszuwählen.
Die Bibliothek more_itertools
bietet nicht nur Lösungen für komplexe Iterationen; es ist auch eleganter und speichereffizienter. Mit der Funktion more_itertools.product()
können wir das Punktprodukt einer Zahlenfolge in einer Liste wie unten gezeigt berechnen.
import more_itertools as mit
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(mit.dotproduct(num1, num2))
Ausgabe:
1100
Berechnen des Punktprodukts mit NumPy in Python
NumPy ist ein wissenschaftliches Python-Paket, das es uns ermöglicht, mit mehrdimensionalen Objekten wie Arrays und Matrizen zu arbeiten.
NumPy ist schnell, aber effizienter, da wir mit sehr wenig Code viel erreichen können. Wir können nahtlos mit Arrays arbeiten, ohne explizit zu indizieren und den vektorisierten Code zu durchlaufen.
Nachfolgend finden Sie eine Lösung, die eine for-Schleife und die Kombination aus Produkt und Additionsoperator verwendet, um das Skalarprodukt zweier Listen zu berechnen.
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
dot_product = 0
for x, y in zip(num1, num2):
dot_product = dot_product + x * y
print("The dot product of the two lists is: ", dot_product)
Ausgabe:
The dot product of the two lists is: 1100
Obwohl diese Lösung das Skalarprodukt berechnet, bietet NumPy eine elegantere Alternative, ohne eine Schleife zu schreiben.
Mit der Methode numpy.dot()
können wir ganz einfach das Skalarprodukt einer Zahlenfolge in zwei Listen berechnen. Diese Lösung ist präzise und daher nicht fehleranfällig und kann im folgenden Code implementiert werden.
import numpy as np
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
dot_product = np.dot(num1, num2)
print("The dot product of the two lists is: ", dot_product)
Ausgabe:
The dot product of the two lists is: 1100
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert