スポンサーリンク
「ベクトルの直積」は、Pythonで容易に計算することができます。
本記事では、Pythonを使用したベクトルの直積の計算方法について、詳しくご説明します。
ベクトルの直積
ベクトルの直積(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(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!
\まずは無料体験!/
スポンサーリンク