# 8.3.py
# 2017-01-15
# $Id: 8.3.py 1.1 2017/01/15 00:00:00 s Exp s $

import numpy as np
from numpy import linalg as LA

# input
s1 = np.array([11.91,  18.37,   3.64,  24.37,  30.42,  \
               -1.45,  20.11,   9.28,  17.63,  15.71])
s2 = np.array([29.59,  15.25,   3.53,  17.67,  12.74,  \
               -2.56,  25.46,   6.92,   9.73,  25.09])
s3 = np.array([23.27,  19.47,  -6.58,  15.08,  16.24,  \
              -15.05,  17.80,  18.82,   3.05,  16.94])
s4 = np.array([27.24,  17.05,  10.20,  20.26,  19.84,  \
                1.51,  12.24,  16.12,  22.93,   3.49])
m  = np.array([23.00,  17.54,   2.70,  19.34,  19.81,  \
               -4.39,  18.90,  12.78,  13.34,  15.31])
rf = np.array([ 6.20,   6.70,   6.40,   5.70,   5.90,  \
                5.20,   4.90,   5.50,   6.10,   5.80])

# calculate
s    = np.vstack((s1, s2, s3, s4))
mean = np.mean(s, axis = 1)
variance    = np.var(s,  axis = 1, ddof = 1)
covariance  = np.cov(s, ddof = 1)
eigenvalue, eigenvector = LA.eig(covariance)
eigenvector0 = eigenvector[:, 0:1]
eigenvector0 = eigenvector0 /sum(eigenvector0)
sumeigenvector0 = sum(eigenvector0)

# output
print('8.3.py')
print('s1', s1)
print('s2', s2)
print('s3', s3)
print('s4', s4)
print('s\n', s)
print('mean\n', np.around(mean, 2))
print('variance\n', np.around(variance, 2))
print('covariance matrix\n', np.around(covariance, 2))
print('eigenvalue\n', np.around(eigenvalue, 2))
print('eigenvector\n', np.around(eigenvector, 3))
print('eigenvector0\n', np.around(eigenvector0, 3))
print('sum of eigenvector0[k]\n', sumeigenvector0)
# eof