web-dev-qa-db-ja.com

pythonのドット積

これはPythonコードは実際に2つのベクトルの内積を見つけますか?

import operator

vector1 = (2,3,5)
vector2 = (3,4,6)
dotProduct = reduce( operator.add, map( operator.mul, vector1, vector2))
14
user458858

ネイティブコードで大規模な配列の最適化を行う dot product のnumpy実装を使用して、計算をわずかに高速化することもできます。ドット積ルーチンを具体的に記述したり、依存関係を回避したりする場合を除いて、テスト済みの広く使用されているライブラリを使用する方が、独自に開発するよりもはるかに優れています。

7
whatnick

はい、そうです。ここに別の方法があります

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

もう1つはoperatorをまったく使用しない

>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in Zip(vector1, vector2))
48
48
John La Rooy