1. 概述
Numpy中的 cov() 可以直接求得矩阵的协方差矩阵。
先简单概述一下什么是协方差:
在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为:
从直观上来看,协方差表示的是两个变量总体误差的期望。
2. numpy.cov()
2.1 语法
numpy.cov(m, y=None, rowvar=True)
给定数据和权重,估计协方差矩阵。
协方差表示两个变量一起变化的水平。 如果我们检查N维样本,X = [x_1,x_2,… x_N] ^ T,则协方差矩阵元素C_ {ij}是x_i和x_j的协方差。 元素C_ {ii}是x_i的方差。
2.2 参数:
m:array_like
包含多个变量和观测值的1-D或2-D数组。 m的每一行代表一个变量,每一列都是对所有这些变量的单一观察。
y:array_like,可选
另外一组变量和观察。 y具有与m相同的形式。
rowvar:布尔值,可选
如果rowvar为True(默认值),则每行代表一个变量X,另一个行为变量Y。否则,转换关系:每列代表一个变量X,另一个列为变量Y。
随着版本的变化,函数的参数也在更新,更多详情点击 查看。
返回:
变量的协方差矩阵
2.3 实例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/3/1 17:06
# @Author : Arrow and Bullet
# @FileName: cov().py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/qq_41800366
from numpy import *
A = array([[0, 2], [1, 1], [2, 0]]).T
print(A) # [[0 1 2][2 1 0]]
B = cov(A) # 默认行为变量计算方式,即X为行,Y也为行
print(B) # [[ 1. -1.][-1. 1.]]
C = cov(A, rowvar=False) # 此时列为变量计算方式 即X为列,Y也为列
print(C) # [[ 2. 0. -2.][ 0. 0. 0.][-2. 0. 2.]]
希望能够帮助到大家,有什么问题可以 直接评论即可,喜欢有用的话可以点个赞让更多的人看到,如果不够详细的话也可以说,我会及时回复的。