配列 ベクトル 行列 統計

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]