Вопрос

Этот код Python фактически находит точечный продукт двух векторов?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
Это было полезно?

Решение

Вы также можете использовать Numpy Реализацию скалярное произведение который имеет большие оптимизации массива в родном коде, чтобы сделать вычисления немного быстрее. Даже лучше, если вы не специфически не пытаетесь написать процедуру продукта DOT или избежать зависимостей, использование проверенной тестированной широко используемой библиотеки намного лучше, чем катиться.

Другие советы

Да, это так. Вот еще один способ

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

И другой, который не использует operator вообще

>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top