计算两个给定的NumPy数组的协方差矩阵


协方差是衡量两个变量之间关系的指标。换句话说,它衡量一个变量与另一个变量变化的相关程度。

当变量的协方差为正时,意味着这两个变量朝着相同的方向变化,即如果一个变量倾向于增加,则另一个变量的值也会增加。当变量的协方差为负时,则表示这两个变量朝着相反的方向变化,即如果一个变量增加,则另一个变量的值会减少。

计算协方差

在数学上,协方差定义为两个变量X和Y的偏差均值的乘积。协方差的大小和符号取决于变量X和Y的尺度。

可以通过将协方差除以X和Y的标准差的乘积来标准化协方差,得到的结果是协方差系数。

协方差的数学公式如下所示。

cov(X,Y) = E[(X - E[X]) * (Y - E[Y])]

其中,

  • E[X] 是X的均值。

  • E[Y] 是Y的均值。

  • cov(X,Y) 是X和Y的协方差。

Numpy中的协方差

在Numpy库中,我们有一个名为cov()的函数,可以使用它来计算两个变量的协方差。它接受两个参数,可以是一维数组或二维数组。

示例

在下面的示例中,当我们将两个二维数组作为输入参数传递给cov()函数时,将计算这两个数组的协方差。

import numpy as np
arr1 = np.array([[23.5,22,14],[67,2,7]])
arr2 = np.array([[4,22,1],[7,2,24]])
covariance = np.cov(arr1,arr2)
print("The covariance of 2-d arrays:",covariance)

输出

The covariance of 2-d arrays: [[  26.08333333  104.58333333   28.25        -55.        ]
 [ 104.58333333 1308.33333333 -182.5         -97.5       ]
 [  28.25       -182.5         129.         -100.5       ]
 [ -55.          -97.5        -100.5         133.        ]]

示例

让我们看另一个示例,使用Numpy库的cov()函数计算二维数组的协方差。

import numpy as np
arr1 = np.array([[34,19],[8,45]])
arr2 = np.array([[273,89],[90,24]])
covariance = np.cov(arr1,arr2)
print("The covariance of 2-d arrays:", covariance)

输出

The covariance of 2-d arrays: [[  112.5  -277.5  1380.    495. ]
 [ -277.5   684.5 -3404.  -1221. ]
 [ 1380.  -3404.  16928.   6072. ]
 [  495.  -1221.   6072.   2178. ]]

示例

现在让我们尝试使用cov()函数计算一维数组的协方差:

import numpy as np
arr1 = np.array([23.5,22,14])
arr2 = np.array([4,22,1])
covariance = np.cov(arr1,arr2)
print("The covariance of 1-d arrays:",covariance)

输出

The covariance of 1-d arrays: [[ 26.08333333  28.25      ]
 [ 28.25       129.        ]]

示例

以下是如何使用Numpy库的cov()函数计算作为输入参数传递给cov()函数的一维数组的协方差的另一个示例。

import numpy as np
arr1 = np.array([67,2,7])
arr2 = np.array([7,2,24])
covariance = np.cov(arr1,arr2)
print("The covariance of 1-d arrays:",covariance)

输出

The covariance of 1-d arrays: [[1308.33333333  -97.5       ]
 [ -97.5         133.        ]]

示例

让我们看另一个示例,该示例处理Numpy库的cov()函数,用于计算一维数组的协方差。

import numpy as np
arr1 = np.arange(10,16,4)
arr2 = np.arange(20,26,4)
covariance = np.cov(arr1,arr2)
print("The covariance of 1-d arrays:",covariance)

输出

The covariance of 1-d arrays: [[8. 8.]
 [8. 8.]]

更新于:2023年8月7日

637 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告