线代中常用的code [for Python]
–需要导入numpy。向量用到np.array(), 矩阵用到np.mat()
–对同一个向量求方差,SPSS和R的计算结果都是除以(n-1),而Python的结果是除以n;而对同样的向量求协方差or相关系数,SPSS、R和Python的结果不存在差异,都是除以(n-1)。存疑,Mark。
–而在数学公式中,方差和协方差都有(n-1)与n的区别,但在相关系数的计算中二者消掉了,不影响最终结果。
import numpy as np
向量
1.求向量的均值、方差、标准差
>>> x=np.array([25,-2,4])
>>> x.mean()
9.0
>>> x.var()
134.0
>>> x.std()
11.575836902790225
2.求向量的协方差
>>> x=np.array([25,-2,4])
>>> y=np.array([4,1,9])
>>> np.cov(x,y)
array([[201. , 4. ],
[ 4. , 16.33333333]])
矩阵
1.矩阵的输入:输入一个2*3的矩阵
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> A=np.mat((a,b))
>>> A
matrix([[1, 2, 3],
[4, 5, 6]])
2.求矩阵的特征根
>>> a=[9,-2]
>>> b=[-2,6]
>>> A=np.mat((a,b))
>>> A
matrix([[ 9, -2],
[-2, 6]])
>>> x,y=np.linalg.eigvals(A)
>>> x
10.0
>>> y
5.0
3.求矩阵的特征根及特征向量
>>> x,y=np.linalg.eig(A)
>>> print(np.linalg.eig(A))
(array([10., 5.]), matrix([[ 0.89442719, 0.4472136 ],
[-0.4472136 , 0.89442719]]))
4.求矩阵的协方差矩阵、相关系数矩阵
>>> a=[25,-2,4]
>>> b=[-2,4,1]
>>> c=[4,1,9]
>>> A=np.mat((a,b,c))
>>> A
matrix([[25, -2, 4],
[-2, 4, 1],
[ 4, 1, 9]])
>>> print(np.cov(A))
[[201. -40.5 4. ]
[-40.5 9. -4.5 ]
[ 4. -4.5 16.33333333]]
>>> print(np.corrcoef(A))
[[ 1. -0.95221658 0.06981111]
[-0.95221658 1. -0.37115374]
[ 0.06981111 -0.37115374 1. ]]