配列 ベクトル 行列 統計

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]