Dot в python
Действительно ли этот код Python находит произведение точек двух векторов?
import operator
vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
Ответы
Ответ 1
Вы также можете использовать реализацию numpy dot product, которая имеет большие оптимизации массивов в собственном коде, чтобы сделать вычисления немного быстрее. Еще лучше, если вы специально не пытаетесь написать программу точечного продукта или избегать зависимостей, использование проверенной широко используемой библиотеки намного лучше, чем сворачивание собственных.
Ответ 2
Да, да. Вот еще один способ
>>> 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