本記事ではPythonで内積を算出する方法を紹介します。ライブラリを使う方法と使わない方法を紹介します。
内積とは
まずは内積について簡単に説明しましょう。
二つのベクトルの内積は下記の式で計算できます。
\[ \vec{a}・\vec{b} = |\vec{a}||\vec{b}|cosθ \]
また、成分を用いて計算することもできます。
\[ \vec{a} = (a_1, a_2), \vec{b} = (b_1, b_2) のとき\]
\[ \vec{a}・\vec{b} = a_1b_1+a_2b_2 \]
となります。
ライブラリを使わない方法
ライブラリを使わずに内積を算出する方法は以下の通りです。
# ①点の定義
v_a = [1, -2, 3]
v_b = [3, -4, 1]
# ②内積の計算
inner_product = 0
for x, y in zip(v_a,v_b):
inner_product += x * y
# ③出力
print(inner_product) # 14
非常に簡単に算出できます。
ライブラリを使う方法
続いて、ライブラリを用いて内積を算出する方法を紹介します。内積を算出する方法は下記のとおりです。
- more-itertoolsを使う方法
- NumPyを使う方法
- SymPyを使う方法
more-itertoolsを使う方法
まずはmore-itertoolsをインストールします。more-itertoolsは複雑な繰り返しを含む処理をそろえたライブラリです。
下記でmore-itertoolsをインストールできます。
pip install more-itertools
続いて、下記でmore-itertoolsを用いて内積を算出可能です。
# ①ライブラリのインポート
import more_itertools as mit
# ②ベクトルの定義
v_a = [1, -2, 3]
v_b = [3, -4, 1]
# ③内積の計算と出力
print(mit.dotproduct(v_a, v_b)) # 14
NumPyを使う方法
続いてNumPyを使う方法を紹介します。NumPyを使って算出する方法には4通りあるので、ひとつずつ解説してゆきます。
まずは下記コマンドでNumPyをインストールする必要があります。
pip install numpy
@を使う方法
まずは@を使う方法を解説します。@を用いて内積を算出する方法は以下の通りです。
# ①ライブラリのインポート
import numpy as np
# ②ベクトルの定義
v_a = np.array([1, -2, 3])
v_b = np.array([3, -4, 1])
# ③内積の計算
v_a @ v_b # 14
numpy.dotを使う方法
続いてnumpy.dotを使う方法を解説します。numpy.dotを用いて内積を算出する方法は以下の通りです。
# ①ライブラリのインポート
import numpy as np
# ②ベクトルの定義
v_a = np.array([1, -2, 3])
v_b = np.array([3, -4, 1])
# ③内積の計算
np.dot(v_a, v_b) # 14
numpy.innerを使う方法
続いてnumpy.innerを使う方法を解説します。numpy.innerを用いて内積を算出する方法は以下の通りです。
# ①ライブラリのインポート
import numpy as np
# ②ベクトルの定義
v_a = np.array([1, -2, 3])
v_b = np.array([3, -4, 1])
# ③内積の計算
np.inner(v_a, v_b) # 14
numpy.vdotを使う方法
続いてnumpy.vdotを使う方法を解説します。numpy.vdotを用いて内積を算出する方法は以下の通りです。
# ①ライブラリのインポート
import numpy as np
# ②ベクトルの定義
v_a = np.array([1, -2, 3])
v_b = np.array([3, -4, 1])
# ③内積の計算
np.vdot(v_a, v_b) # 14
SymPyを使う方法
最後にSymPyを使う方法を紹介します。まず、SymPyを下記のコマンドでインストールする必要があります。
pip install sympy
sympyを用いて内積を算出する方法は以下の通りです。
# ①ライブラリのインポート
import sympy
# ②ベクトルの定義
v_a = sympy.Matrix([1, -2, 3])
v_b = sympy.Matrix([3, -4, 1])
# ③内積の計算
v_a.dot(v_b) # 14
内積を算出する方法の紹介は以上です。
まとめ

内積を算出する方法は色々あるので、好きな方法で算出しよう!
