더북(TheBook)

다음은 행렬 연산으로 앞 예제의 기대수익률을 구하는 코드다.

# numpy 라이브러리를 np라는 이름으로 임포트한다
import numpy as np

# numpy의 matrix 클래스를 사용해 국면별 확률을 1x3 행렬로 만든다
prob = np.matrix( [ [1/3, 1/3, 1/3] ] )

# 주식 A와 B의 수익률을 1x3 행렬로 만든다
stock_a = np.matrix( [ [7, 4, 1] ] )
stock_b = np.matrix( [ [13, 4, -5] ] )

# 행렬 곱하기 연산을 수행한다. 단, 행렬의 차원이 맞아야 하므로 stock_a.T, stock_b.T와 같이 stock_a와 stock_b 행렬을 전치(행과 열의 방향을 바꾸는 것)시켜준다. 따라서 prob는 1x3, stock_a와 stock_b는 3x1 행렬이 돼 곱하기 연산의 결과 1x1의 결과 행렬이 나오게 된다
ex_a = prob * stock_a.T
ex_b = prob * stock_b.T

# %.2f는 %로 연결한 변수(% ex_a와 % ex_b)의 서식을 지정하는 것으로, 소수점 이하 두 자리 실수(f)로 출력한다. f 뒤 %%는 백분율 표시 %를 붙이기 위한 것이다
print( '주식 A의 기대수익률은 %.2f%%' % ex_a )
print( '주식 B의 기대수익률은 %.2f%%' % ex_b )


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.