numpy.linalg — 선형대수 루틴¶
numpy.linalg 서브모듈은 numpy.ndarray 객체에 대해 동작하는 소수의 선형대수 루틴을 제공합니다. 행렬에 대해 동작하는 함수는 2차원 배열을 필요로 하며, 다른 차원의 배열을 전달하면 ValueError가 발생합니다. 이 서브모듈은 복소수 dtype을 지원하지 않습니다.
함수¶
- numpy.linalg.cholesky(A: ndarray) ndarray¶
양의 정부호 대칭 정방 행렬의 촐레스키 분해를 계산합니다.
- 매개변수:
A – 양의 정부호 대칭 2차원 정방 행렬입니다.
- 반환:
A = L @ L.T를 만족하는 하삼각numpy.ndarrayL입니다.- 예외 발생:
ValueError – A가 정방이 아니거나, 대칭이 아니거나, 양의 정부호가 아닌 경우.
- numpy.linalg.det(m: ndarray) float¶
정방 행렬의 행렬식을 계산합니다.
- 매개변수:
m – 2차원 정방 행렬입니다.
- 반환:
m의 행렬식을 Python
float로 반환합니다. 입력이 정수 배열인 경우에도 반환값은 항상 float입니다.- 예외 발생:
ValueError – m이 정방이 아닌 경우.
이 계산은 부분 피벗을 사용한 가우스 소거법으로 수행됩니다.
- numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]¶
실수 대칭 정방 행렬의 고윳값과 고유벡터를 계산합니다.
- 매개변수:
m – 2차원 실수 대칭 정방 행렬입니다.
- 반환:
2-튜플
(eigenvalues, eigenvectors)입니다.eigenvalues는 길이N의 1차원 배열이고,eigenvectors는 각 열이 대응하는 고유벡터인N×N배열입니다.- 예외 발생:
ValueError – m이 정방이 아니거나, 대칭이 아니거나, 야코비 회전 반복이 수렴하지 못하는 경우.
- numpy.linalg.inv(m: ndarray) ndarray¶
정방 행렬의 역행렬을 계산합니다.
- 매개변수:
m – 2차원 정방 행렬입니다.
- 반환:
m의 역행렬을 float
numpy.ndarray로 반환합니다.- 예외 발생:
ValueError – m이 정방이 아니거나 특이 행렬인 경우.
역행렬 계산은 가우스-조던 소거법으로 수행됩니다.
- numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray¶
벡터 또는 행렬의 2-노름을 계산합니다.
- 매개변수:
x –
numpy.ndarray,tuple,list, 또는range입니다.axis – 노름을 계산할 선택적 축입니다.
None(기본값)이면 평탄화된 입력에 대해 노름을 취하고 단일float를 반환합니다. 그렇지 않으면 해당 축을 따라 노름이 축약되고numpy.ndarray가 반환됩니다.
- 반환:
(axis가
None이거나 x가 ndarray가 아닌 이터러블일 때의) Pythonfloat, 또는 해당 축이 제거된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'모드에서는Q와R이 각각 선행min(M, N)개의 열과 행으로 잘립니다.
- 반환:
m == Q @ R를 만족하는numpy.ndarray객체로 이루어진 2-튜플(Q, R)로,Q는 정규직교이고R은 상삼각입니다.- 예외 발생:
TypeError – m이
numpy.ndarray가 아닌 경우.ValueError – m이 2차원이 아니거나 mode가 허용된 값 중 하나가 아닌 경우.
이 분해는 연속적인 기븐스 회전을 통해 구현됩니다.