计算两个给定 NumPy 数组的协方差矩阵
numpyserver side programmingprogramming
协方差是两个变量的度量,定义它们之间的相互关系。换句话说,它衡量一个变量与另一个变量的变化之间的关联程度。
当变量的协方差为正时,意味着两个变量都朝着同一个方向移动,即如果一个变量趋于增加,则另一个变量的值也会增加。当变量的协方差为负时,则表示两个变量朝着相反的方向移动,即如果一个变量增加,另一个变量的值就会减少。
计算协方差
从数学上讲,协方差定义为两个变量 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() 函数的一维数组的协方差。
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.]]