[python] NumPy로 공분산 행렬 또는 상관 행렬을 계산하는 방법을 알려주세요.

NumPy는 파이썬에서 수치 계산을 위한 강력한 라이브러리입니다. 이를 활용하여 공분산 행렬과 상관 행렬을 계산하는 방법을 알아보겠습니다.

먼저, numpy 모듈을 import하여 사용합니다.

import numpy as np

다음으로, 데이터를 numpy 배열로 만들어 줍니다. 이 예제에서는 3개의 변수로 구성된 5개의 데이터 포인트를 사용하겠습니다.

data = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9],
                [10, 11, 12],
                [13, 14, 15]])

공분산 행렬을 계산하기 위해서는 np.cov() 함수를 사용합니다. 이 함수는 데이터의 행이 변수를 나타내고, 열이 데이터 포인트를 나타내는 배열을 받습니다. 반환값은 공분산 행렬입니다.

cov_matrix = np.cov(data.T)

위에서 data.T는 데이터 배열의 전치행렬을 의미합니다. 전치행렬은 행과 열이 바뀐 배열입니다.

상관 행렬을 계산하기 위해서는 공분산 행렬을 사용하여 계산합니다. 상관 행렬은 공분산 행렬에서 각 요소들을 표준편차로 나누어준 결과입니다. np.corrcoef() 함수를 사용하여 상관 행렬을 계산할 수 있습니다.

corr_matrix = np.corrcoef(data.T)

위 코드는 데이터 배열의 전치행렬을 입력으로 받아 상관 행렬을 반환합니다.

이제 공분산 행렬과 상관 행렬을 계산하는 방법에 대해 알아보았습니다. 이를 활용하여 데이터의 분포와 변수간 관계를 분석하는 등 다양한 분석에 유용하게 사용할 수 있습니다.

더 자세한 내용은 NumPy 공식 문서를 참고하시기 바랍니다.