[python] NumPy를 사용하여 행렬 분해를 수행하는 방법은 무엇인가요?
NumPy에서는 행렬 분해를 위한 여러 가지 함수와 메서드가 제공됩니다. 가장 일반적인 행렬 분해 중 하나는 고윳값 분해(Eigendecomposition)입니다. 이것은 정방 행렬을 고유값과 고유벡터로 분해하는 것입니다.
NumPy에서는 numpy.linalg.eig()
함수를 사용하여 고윳값 분해를 수행할 수 있습니다. 이 함수의 입력으로 정방 행렬을 전달하면, 고윳값과 고유벡터를 반환합니다. 다음은 NumPy를 사용하여 고윳값 분해를 수행하는 예시 코드입니다:
import numpy as np
# 입력 행렬
A = np.array([[1, 2], [3, 4]])
# 고윳값 분해 수행
eigenvalues, eigenvectors = np.linalg.eig(A)
# 고윳값 출력
print("Eigenvalues:", eigenvalues)
# 고유벡터 출력
print("Eigenvectors:", eigenvectors)
이 코드는 A
라는 2x2 크기의 행렬을 고윳값과 고유벡터로 분해합니다. numpy.linalg.eig()
함수는 eigenvalues
라는 배열에 고윳값을, eigenvectors
라는 2x2 크기의 배열에 고유벡터를 반환합니다. 코드에서는 이 값을 출력하고 있습니다.
NumPy에는 더 많은 행렬 분해 방법과 관련된 함수와 메서드가 있습니다. numpy.linalg
모듈의 문서를 참조하면 더 자세한 정보를 얻을 수 있습니다.