[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 모듈의 문서를 참조하면 더 자세한 정보를 얻을 수 있습니다.