python求协方差矩阵_用numpy计算协方差(covariance)

numpy.cov函数计算协方差(covariance),不过函数返回的是一个对称矩阵。协方差的数学定义如下:

协方差(covariance)

numpy.cov函数在输入1D数据的时候,等于是在计算ddof=1是的方差:

>>> a

array([1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> np.cov(a)

array(7.5)

>>> np.var(a)

6.666666666666667

>>> np.var(a, ddof=1)

7.5

np.cov输入2D数据时,默认是按row来区分数据(rowvar=True):

>>> xyz = np.random.randn(3,10)

>>> xyz

array([[-0.98774563, 0.01219101, 0.94765007, 0.47280046, 0.39754543,

2.62015086, -2.42892013, 0.85784089, -2.09882408, 0.55928169],

[-1.74792811, 0.91064638, -0.90492796, 0.24258947, -0.32412352,

1.39211676, -1.38364279, 0.7452918 , 0.89103796, -0.81576824],

[-0.03584965, 0.99270734, -0.76944208, 0.37164058, 0.68762318,

-1.15881331, -0.23819145, 0

numpy.cov函数计算协方差(covariance),不过函数返回的是一个对称矩阵。协方差的数学定义如下: 协方差(covariance) numpy.cov函数在输入1D数据的时候,等于是在计算ddof=1是的方差: >>> a array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.cov(a) array(7.5) >>> np.var(a) 6.666666666666667 >>> np.var(a, ddof=1) 7.5 np.cov输入2D数据时,默认是按row来区分数据(rowvar=True): >>> xyz = np.random.randn(3,10) >>> xyz array([[-0.98774563, 0.01219101, 0.94765007, 0.47280046, 0.39754543, 2.62015086, -2.42892013, 0.85784089, -2.09882408, 0.55928169], [-1.74792811, 0.91064638, -0.90492796, 0.24258947, -0.32412352, 1.39211676, -1.38364279, 0.7452918 , 0.89103796, -0.81576824], [-0.03584965, 0.99270734, -0.76944208, 0.37164058, 0.68762318, -1.15881331, -0.23819145, 0
经验分享 程序员 微信小程序 职场和发展