노름 이해하기 파이썬 치트코드

여기서는 np.linalg.norm을 이용하여 한번에 노름을 계산하는 방식과 함께, 직접 제곱을 하여 합계를 구하는 식으로 노름을 구해봅니다.

norm

파이썬 노름(Norm) 계산

In [40]:
import numpy as np

array = np.random.randint(10, size=(5,3))
array
Out[40]:
array([[0, 6, 9],
       [5, 0, 7],
       [5, 9, 7],
       [4, 2, 7],
       [9, 3, 0]])

유클리디언 노름을 아래와 같이 계산한다.

In [41]:
np.linalg.norm(array, axis = 1)
Out[41]:
array([10.81665383,  8.60232527, 12.4498996 ,  8.30662386,  9.48683298])

이해를 위해 다른 방식으로 한번 계산해보자

In [42]:
sq = np.square(array)
sq
Out[42]:
array([[ 0, 36, 81],
       [25,  0, 49],
       [25, 81, 49],
       [16,  4, 49],
       [81,  9,  0]], dtype=int32)
In [43]:
s = np.sum(sq, axis = 1)
s
Out[43]:
array([117,  74, 155,  69,  90], dtype=int32)
In [44]:
np.sqrt(s)
Out[44]:
array([10.81665383,  8.60232527, 12.4498996 ,  8.30662386,  9.48683298])

결국 결과는 같다.

댓글 남기기