NumPy でベクトルの長さを 1 にして正規化する
2023.02.18
NumPy のベクトルを正規化するにはベクトルを長さで割ります。長さは linalg.norm 関数で求まります。
import numpy as np
x = np.array([4, 3])
c = np.linalg.norm(x)
y = x / c
print(y) # [0.8 0.6]
得られたベクトル y の長さは 1 です。
d = np.linalg.norm(y)
print(d) # 1.0
y は x を正規化したベクトルです。別の次元でも計算してみましょう。
import numpy as np
x = np.array([3, 5, 7])
c = np.linalg.norm(x)
y = x / c
print(y) # 0.32929278 0.5488213 0.76834982]