선형 대수학에서 행렬이나 벡터의 노름(Norm)을 계산하려면 Python NumPy의 LA.norm() 메서드를 사용하면 됩니다.
첫 번째 매개변수 x는 입력 배열입니다. axis가 None이면 x는 반드시 1차원 또는 2차원 배열이어야 합니다(ord가 None인 경우 제외). 만약 axis와 ord가 모두 None이라면 x.ravel()의 2-노름(2-norm)이 반환됩니다.
두 번째 매개변수 ord는 노름의 차수를 지정합니다. inf는 NumPy의 inf 객체를 의미하며, 기본값은 None입니다. 매개변수로 'fro'를 설정하면 Frobenius 노름이 계산됩니다. 참고로 Frobenius 노름과 nuclear 노름은 행렬에 대해서만 정의됩니다.
단계별 진행
1. 필요한 라이브러리 임포트
import numpy as np from numpy import linalg as LA
2. 배열 생성
arr = np.array([[ -4, -3, -2], [-1, 0, 1], [2, 3, 4] ])
3. 배열 출력하기
print("Our Array...\n",arr)4. 차원 확인하기
print("\nDimensions of our Array...\n",arr.ndim)5. 데이터 타입 확인하기
print("\nDatatype of our Array object...\n",arr.dtype)6. 형태(Shape) 확인하기
print("\nShape of our Array object...\n",arr.shape)7. Frobenius Norm 계산하기
LA.norm() 메서드에 'fro'를 전달하여 행렬의 Frobenius 노름을 계산합니다.
print("\nResult...\n",LA.norm(arr, 'fro'))전체 예제 코드
import numpy as np
from numpy import linalg as LA
# 배열 생성
arr = np.array([[ -4, -3, -2], [-1, 0, 1], [2, 3, 4] ])
# 배열 출력
print("Our Array...\n",arr)
# 차원 확인
print("\nDimensions of our Array...\n",arr.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",arr.dtype)
# 형태 확인
print("\nShape of our Array object...\n",arr.shape)
# LA.norm() 메서드로 Frobenius Norm 계산
print("\nResult...\n",LA.norm(arr, 'fro'))실행 결과
Our Array...
[[-4 -3 -2]
[-1 0 1]
[ 2 3 4]]
Dimensions of our Array...
2
Datatype of our Array object...
int64
Shape of our Array object...
(3, 3)
Result...
7.745966692414834위 결과에서 볼 수 있듯이, 3x3 행렬의 각 요소를 제곱한 후 모두 더하고 제곱근을 취한 값인 7.745966692414834가 Frobenius 노름으로 반환됩니다. 이는 행렬의 모든 요소 크기를 하나의 스칼라 값으로 나타내는 유용한 지표입니다.