numpy.linalg — 선형대수 루틴

numpy.linalg 서브모듈은 numpy.ndarray 객체에 대해 동작하는 소수의 선형대수 루틴을 제공합니다. 행렬에 대해 동작하는 함수는 2차원 배열을 필요로 하며, 다른 차원의 배열을 전달하면 ValueError가 발생합니다. 이 서브모듈은 복소수 dtype을 지원하지 않습니다.

함수

numpy.linalg.cholesky(A: ndarray) ndarray

양의 정부호 대칭 정방 행렬의 촐레스키 분해를 계산합니다.

매개변수:

A – 양의 정부호 대칭 2차원 정방 행렬입니다.

반환:

A = L @ L.T를 만족하는 하삼각 numpy.ndarray L입니다.

예외 발생:

ValueErrorA가 정방이 아니거나, 대칭이 아니거나, 양의 정부호가 아닌 경우.

numpy.linalg.det(m: ndarray) float

정방 행렬의 행렬식을 계산합니다.

매개변수:

m – 2차원 정방 행렬입니다.

반환:

m의 행렬식을 Python float로 반환합니다. 입력이 정수 배열인 경우에도 반환값은 항상 float입니다.

예외 발생:

ValueErrorm이 정방이 아닌 경우.

이 계산은 부분 피벗을 사용한 가우스 소거법으로 수행됩니다.

numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]

실수 대칭 정방 행렬의 고윳값과 고유벡터를 계산합니다.

매개변수:

m – 2차원 실수 대칭 정방 행렬입니다.

반환:

2-튜플 (eigenvalues, eigenvectors)입니다. eigenvalues는 길이 N의 1차원 배열이고, eigenvectors는 각 열이 대응하는 고유벡터인 N×N 배열입니다.

예외 발생:

ValueErrorm이 정방이 아니거나, 대칭이 아니거나, 야코비 회전 반복이 수렴하지 못하는 경우.

numpy.linalg.inv(m: ndarray) ndarray

정방 행렬의 역행렬을 계산합니다.

매개변수:

m – 2차원 정방 행렬입니다.

반환:

m의 역행렬을 float numpy.ndarray로 반환합니다.

예외 발생:

ValueErrorm이 정방이 아니거나 특이 행렬인 경우.

역행렬 계산은 가우스-조던 소거법으로 수행됩니다.

numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray

벡터 또는 행렬의 2-노름을 계산합니다.

매개변수:
  • xnumpy.ndarray, tuple, list, 또는 range입니다.

  • axis – 노름을 계산할 선택적 축입니다. None(기본값)이면 평탄화된 입력에 대해 노름을 취하고 단일 float를 반환합니다. 그렇지 않으면 해당 축을 따라 노름이 축약되고 numpy.ndarray가 반환됩니다.

반환:

(axisNone이거나 x가 ndarray가 아닌 이터러블일 때의) Python float, 또는 해당 축이 제거된 numpy.ndarray입니다.

2-노름은 수치적으로 안정적인 누적 평균을 사용하여 sqrt(sum(x*x))로 계산되므로, 이 연산은 입력 크기에 비례하는 추가 저장 공간을 필요로 하지 않습니다.

numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]

행렬을 정규직교 행렬과 상삼각 행렬의 곱으로 분해합니다.

매개변수:
  • m – 형상이 (M, N)인 2차원 행렬입니다.

  • mode'reduced'(기본값) 또는 'complete' 중 하나입니다. 'complete' 모드에서는 Q의 형상이 (M, M)이고 R의 형상이 (M, N)입니다. 'reduced' 모드에서는 QR이 각각 선행 min(M, N)개의 열과 행으로 잘립니다.

반환:

m == Q @ R를 만족하는 numpy.ndarray 객체로 이루어진 2-튜플 (Q, R)로, Q는 정규직교이고 R은 상삼각입니다.

예외 발생:

이 분해는 연속적인 기븐스 회전을 통해 구현됩니다.