【Python入門】ベクトルの直積|numpy.outer()を学ぶ

ベクトルの直積|numpy.outer()を学ぶ_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

「ベクトルの直積」は、Pythonで容易に計算することができます。

本記事では、Pythonを使用したベクトルの直積の計算方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用した直積の計算方法について学びたい人
levtech-ad

ベクトルの直積

ベクトルの直積(direct product)とは、2つのベクトルのテンソル積のことです。

\(x\)次元のベクトルと\(y\)次元のベクトルの直積は、\(x\otimes y\)として表され、計算結果は\(x\times y\)の行列になります。

以下にPythonを使用したベクトルの直積の計算方法をご紹介します。

列ベクトルと行ベクトルの積

ベクトルの直積は、列ベクトルと行ベクトルの積で計算できます。

reshape()関数で行ベクトルに変換した上で、直積を計算してみます。

#input
import numpy as np

v1 = np.array([1, 2, 3]).reshape(-1, 1)
v2 = np.array([4, 5])

print(v1 * v2)
#output
[[ 4  5]
 [ 8 10]
 [12 15]]

numpy.outer()

NumPyのnumpy.outer()は、引数に指定したベクトル同士の直積を出力することができます。

#input
import numpy as np

v1 = np.array([1, 2, 3])
v2 = np.array([4, 5])

dp12 = np.outer(v1,v2)
dp21 = np.outer(v2,v1)

print("dp12:\n{}".format(dp12))
print("dp21:\n{}".format(dp21))
#output
dp12:
[[ 4  5]
 [ 8 10]
 [12 15]]
dp21:
[[ 4  8 12]
 [ 5 10 15]]

計算順序を逆にすると、計算結果は元の行列の転置(行成分と列成分の入れ替え)となります。

同次元のベクトルの直積においても、計算順序を変えると、以下の通り転置行列となります。

#input
import numpy as np

v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])

dp12 = np.outer(v1,v2)
dp21 = np.outer(v2,v1)

print("dp12:\n{}".format(dp12))
print("dp21:\n{}".format(dp21))
#output
dp12:
[[ 4  5  6]
 [ 8 10 12]
 [12 15 18]]
dp21:
[[ 4  8 12]
 [ 5 10 15]
 [ 6 12 18]]

まとめ

この記事では、Pythonを使用したベクトルの直積の計算方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました