共分散行列を求める

# usr/bin/env/ python
# -*- coding: utf-8 -*-

from scipy import *
import scipy.linalg
import numpy
import math

from heikin import Statistics #クラスの読み込み(.pyは削除する=heikin.pyとしない)

c = Statistics() #CはStatisticsクラスのインスタンス

a = [
[50,90,40,50,80],
[80,70,80,70,80],
[50,40,90,80,30],
[80,40,80,90,50],
[20,30,30,20,30]
]
A = mat(a)

i=0
s = []
for x in range(5):
    vec1 = A.T[i]
    vec1 = vec1.tolist()[0]
    mean_vec1 = c.mean(vec1)
    j=0
    ss = []
    for y in range(5):
        vec2= A.T[j]
        vec2 = vec2.tolist()[0]
        mean_vec2 = c.mean(vec2)
        zipped = zip(vec1,vec2)
        temp = 0
        for z in zipped:
            temp += (z[0] - mean_vec1 )*( z[1] - mean_vec2 ) 
        var_val = temp *1.0 / (len(zipped)-1)
        ss.append(var_val)
        j+=1
    s.append(ss)
    i += 1
S = mat(s)
print "S= ",S