Domanda

Questo codice Python trova effettivamente il prodotto scalare di due vettori?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
È stato utile?

Soluzione

Puoi anche utilizzare l'implementazione numpy di prodotto scalare che dispone di ampie ottimizzazioni di array nel codice nativo per rendere i calcoli leggermente più veloci.Ancora meglio, a meno che tu non stia cercando specificamente di scrivere una routine di prodotto scalare o di evitare dipendenze, utilizzare una libreria ampiamente utilizzata e provata è molto meglio che crearne una tua.

Altri suggerimenti

Sì lo fa. Ecco un altro modo

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

e un altro che non fa uso di operator a tutti

>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top