NumPyでベクトルの絶対値(ノルム)を求める
2023.02.18
ベクトルの絶対値(ノルム)は linalg の norm という関数を使って計算します。
import numpy as np
a = np.array([3, 4])
b = np.array([1, 5, 9])
m = np.linalg.norm(a)
n = np.linalg.norm(b)
print(m)
print(n)
# 5.0
# 10.344080432788601
絶対値をそのまま英訳すると absolute value になりますが、NumPy の absolute という関数は「ベクトルの絶対値」でなく、「そのベクトルのすべての要素の絶対値を要素としたベクトル」を返します。
ベクトルの長さを求めるときは norm という関数を使います。これは linalg にあり、NumPy の公式サイトは次のようなコードも紹介しています。
import numpy as np
from numpy import linalg as LA
a = np.array([3, 4])
b = np.array([1, 5, 9])
m = LA.norm(a)
n = LA.norm(b)
print(m)
print(n)
# 5.0
# 10.344080432788601
absolute はベクトルのノルムを返さない:
import numpy as np
a = np.array([-3, 4])
b = np.array([1, -5, 9])
m = np.absolute(a)
n = np.absolute(b)
print(m)
print(n)
# [3 4]
# [1 5 9]