Pythonで内積を算出する方法

Python

本記事では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は複雑な繰り返しを含む処理をそろえたライブラリです。

GitHub - more-itertools/more-itertools at 266ebdcf9027b7bb6ab72f8cd4585804c1e1547e
More routines for operating on iterables, beyond itertools - GitHub - more-itertools/more-itertools at 266ebdcf9027b7bb6a...

下記で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

内積を算出する方法の紹介は以上です。

まとめ

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

楽天Kobo電子書籍ストア
¥2,750 (2025/03/14 23:06時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場
タイトルとURLをコピーしました