728x90
numpy.linalg.norm
numpy.linalg.
norm
(x, ord=None, axis=None, keepdims=False)이 함수는 8가지 다른 매트릭스 노름 중 1가지를 반환한다. 또는 ord 파라미터의 값에 따라 벡터 노름의 무한 값 중 한가지를 반환한다.
파라미터
x : array_like
배열을 입력한다. 만약 axis가 none이면 x는 1차원이나 2차원이다.
ord : {0이 아닌 정수값, inf, -inf, 'fro','nuc'} optional
노름의 순서(아래 note 확인) inf는 numpy의 inf 오브젝트를 의미한다
axis : {정수, 정수의 2 튜플, None}, optional
axis가 정수이면, 벡터 노름을 계산할 x의 축을 지정한다. axis가 2-튜플이면 2차원 매트릭스를 유지하는 축을 지정하고, 이 매트릭스 노름이 계산된다. axis가 None면 벡터 노름(x가 1차원인 경우) 또는 매트릭스 노름(x가 2차원인 경우) 이 반환된다.
keepdims : bool, optional
만약 이 파라미터가 참이면, 표준화된 축이 1의 크기로 남는다. 이 옵션과 함께 결과는 오리지널 x에 따라 명확하게 반환된다.
반환값
n : float or ndarray
매트릭스 또는 벡터의 Norm
노트
ord <= 0의 결과는 수학적인 norm이 아니지만 결과는 다양한 수치적 목적으로 유용할 수 있다.
아래의 노름들은 계산되어 진다.:
ord | norm for matrices | norm for vectors |
---|---|---|
None | Frobenius norm | 2-norm |
‘fro’ | Frobenius norm | – |
‘nuc’ | nuclear norm | – |
inf | max(sum(abs(x), axis=1)) | max(abs(x)) |
-inf | min(sum(abs(x), axis=1)) | min(abs(x)) |
0 | – | sum(x != 0) |
1 | max(sum(abs(x), axis=0)) | as below |
-1 | min(sum(abs(x), axis=0)) | as below |
2 | 2-norm (largest sing. value) | as below |
-2 | smallest singular value | as below |
other | – | sum(abs(x)**ord)**(1./ord) |
예제
아래 LA.norm(a)의 결과는 위의 식을 이용하여 나온 결과이다.
Using the axis argument to compute vector norms:
Using the axis argument to compute matrix norms:
Reference
https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.norm.html
728x90