【Python入門】ベクトルの大きさ|単位ベクトルを生成する

ベクトルの大きさ|単位ベクトルを生成する_アイキャッチ プログラミング

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

levtech-ad
スポンサーリンク

「ベクトルの大きさ」は、Pythonで容易に確認することができます。

本記事では、Pythonを使用したベクトルの大きさの確認方法と単位ベクトルの生成方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonを使用したベクトルの大きさの確認方法について学びたい人
levtech-ad

ベクトルの大きさ

ベクトルは大きさと向きで定義されていますが、2次元以上の形で表現されています。

\(n\)次元のベクトルの大きさは、下式の通り、各要素の二乗和の平方根で計算することができます。

\(\left\| v\right\| =\sqrt{v_{1}^{2}+v_{2}^{2}+\ldots +v_{n}^{2}}\)

以下にNumPyを使用したベクトルの大きさ確認方法をご紹介します。

#input
import numpy as np

v = np.array([1, 2, 3, 4, 5])
vn = np.sqrt(np.sum(v**2))

print("vn : {:.3f}".format(vn))
#output
vn : 7.416

numpy.linalg.norm() 

NumPyのnumpy.linalg.norm()を使用すると、ベクトルの大きさを確認することができます。

#input
import numpy as np

v = np.array([1, 2, 3, 4, 5])
vn = np.linalg.norm(v)

print("vn : {:.3f}".format(vn))
#output
vn : 7.416

axisで確認したいベクトルの大きさの向き(軸)を指定することで、多次元ベクトル配列の大きさも確認することができます。

#input
import numpy as np
np.set_printoptions(precision=3)

v = np.array([[1, 2, 3], 
              [4, 5, 6]])
vn0 = np.linalg.norm(v, axis = 0)
vn1 = np.linalg.norm(v, axis = 1)

print("vn(列) : {}".format(vn0))
print("vn(行) : {}".format(vn1))
#output
vn(列) : [4.123 5.385 6.708]
vn(行) : [3.742 8.775]

scipy.linalg.norm()

SciPyのscipy.linalg.norm()もNumpyと同じく、引数にベクトル配列を指定することで、ベクトルの大きさを確認することができます。

#input
import numpy as np
from scipy.linalg import norm

v = np.array([1, 2, 3, 4, 5])
vn = norm(v)

print("vn : {:.3f}".format(vn))
#output
vn : 7.416

単位ベクトル

長さが1となるベクトルを「単位ベクトル」と呼びます。

任意のベクトルを自身のベクトルの大きさで除算することで、単位ベクトルを算出することができます。

以下に単位ベクトルの算出例をご紹介します。

#input
import numpy as np
np.set_printoptions(precision=3)

v = np.array([1, 2, 3, 4, 5])
vn = np.linalg.norm(v)
u = v / vn

print("単位ベクトル : {}".format(u))
print("単位ベクトルの大きさ : {}".format(np.linalg.norm(u)) )
#output
単位ベクトル : [0.135 0.27  0.405 0.539 0.674]
単位ベクトルの大きさ : 1.0

多次元ベクトルでも単位ベクトルを計算できます。

#input
import numpy as np
np.set_printoptions(precision=3)

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

v = v / np.linalg.norm(v, axis = 1, keepdims=True)

print("単位ベクトル(行) : \n{}".format(v))
print("単位ベクトルの大きさ : \n{}".format(np.linalg.norm(v, axis=1,keepdims=True)) )
#output
単位ベクトル(行) : 
[[0.267 0.535 0.802]
 [0.456 0.57  0.684]]
単位ベクトルの大きさ :
[[1.]
 [1.]]

まとめ

この記事では、Pythonを使用したベクトルの大きさの確認方法と単位ベクトルの生成方法について、ご説明しました。

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

参考

Python学習用おすすめ教材

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

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

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

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

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

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

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

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

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