Frage

Ist eigentlich dieser Python-Code das Skalarprodukt von zwei Vektoren finden?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
War es hilfreich?

Lösung

Sie können auch die numpy Implementierung von Skalarprodukt , die hat große Array Optimierungen in nativen Code zu machen Berechnungen etwas schneller. Noch besser, wenn Sie speziell versuchen, eine Skalarprodukt Routine oder zu vermeiden Abhängigkeiten zu schreiben, eine versuchte getestet weit verbreitet Bibliothek ist viel besser als Ihre eigenen Rollen.

Andere Tipps

Ja, es funktioniert. Hier ist eine andere Art und Weise

>>> sum(map( operator.mul, vector1, vector2))
48

und eine andere, die nicht operator bei allen

verwenden ist
>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top