【numpy】协方差计算

这篇博客介绍了如何利用numpy库计算两个数组的方差和协方差。通过提供的公式,展示了手动计算的过程,并给出了使用numpy的cov函数进行批量计算的例子。最终输出了计算结果,展示了cov函数返回的2x2矩阵形式。

numpy中计算方差/协方差的函数 cov

公式

cov(X,Y)=∑i=1n(Xi−Xˉ)(Yi−Yˉ)N−1 cov(X,Y)= \cfrac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})} {N-1} cov(X,Y)=N1i=1n(XiXˉ)(YiYˉ)

X,Y为等长的两个数组

结果为一个2X2的矩阵,

cov(X,Y)={cov(X,X)cov(X,Y)cov(Y,X)cov(Y,Y)} cov(X,Y)= \begin{Bmatrix} cov(X,X) &cov(X,Y)\\ cov(Y,X) & cov(Y,Y) \end{Bmatrix} cov(X,Y)={cov(X,X)cov(Y,X)cov(X,Y)cov(Y,Y)}

公式可以扩展为N个数组,结果为N x N的矩阵

计算

import numpy as np

T = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
S = np.array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3])
T_m = np.average(T)
S_m = np.average(S)
cov_T_T = np.sum((T-T_m)*(T-T_m))/11
cov_T_S = np.sum((T-T_m)*(S-S_m))/11
cov_S_S = np.sum((S-S_m)*(S-S_m))/11

print(cov_T_T, cov_T_S)
print(cov_T_S, cov_S_S)

X = np.vstack((T,S))

print(np.cov(X))

结果

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值