python+Scipyで行列計算

Scipyをつかって行列計算。
[参考]http://handasse.blogspot.com/2007/07/scipy.html

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

import scipy 
import scipy.linalg
from numpy import *

a = [ [1,3,5], [2,5,1], [2,3,8]]
A = mat(a)
#print "配列 a:", a
#print "行列 A:", A
print "行列→リスト", A.tolist()
print "逆行列:" , A.I
print "エルミート行列:", A.H
print "転置行列:", A.T
print "行列→配列:", A.A
print "行列→1次元配列:", A.A1
print "2番目の行を取り出す:", A[1]
print "2番目の列を取り出す:", A.T[1]
print "共役行列:", A.conj()
print "対角化:", A.diagonal()
print "行列式:", linalg.det(A)
print "固有値と固有ベクトル", linalg.eig(A)
print "正規化", linalg.norm(A)
#print "LU分解", linalg.lu(A)
print "QR分解", linalg.qr(A)
print "四則演算"
print "A + A:", A+A
print "A - A:", A-A
print "A * A:", A*A
print "A / A:", A/A
print "A * A^-1 (= I:単位行列)", A*A.I


なぜかLU分解だけ通らない。

File "scipytest.py", line 25, in <module>
    print "LU分解", linalg.lu(A)
AttributeError: 'module' object has no attribute 'lu'

平均と標準偏差を計算するプログラム

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

#heikin.py

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

class Statistics:

    def mean(self,x_vec): #pythonでは第一引数にselfを指定しないといけない
        sum = 0    
        for x in x_vec:
            sum += x
        mean_value = sum * 1.0 / len(x_vec)
        return mean_value   

    def sd(self,x_vec):
        mean_value = mean(x_vec)
        temp = 0 
        for x in x_vec:
            temp += pow((x - mean_value), 2) 
        var_val = temp * 1.0 / len(x_vec)
        sd_val = pow(var_val,0.5)
        return sd_val

行列のある行に関する標準偏差を計算するプログラム

# 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)


su = []
for x in range(5):
        #print x
        vec =  A.T[x]
	vec = vec.tolist()
        #vec[0]はベクトルをリストで表したもの
        #print vec[0] 
        mean_value = c.mean(vec[0])
        sd_vec = c.sd(vec[0]) 
	su.append(sd_vec)
print "標準偏差:", su