Berechnen des Punktprodukts zweier Listen in Python

Isaac Tony 30 Januar 2023
  1. Verwenden der Funktionen sum() und zip() zur Berechnung des Skalarprodukts in Python
  2. Berechnen des Punktprodukts mit den Funktionen map() und mul() in Python
  3. Berechnen des Punktprodukts mit more_itertools.dotproduct in Python
  4. Berechnen des Punktprodukts mit NumPy in Python
Berechnen des Punktprodukts zweier Listen in Python

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
Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

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.

LinkedIn

Verwandter Artikel - Python List