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()的函数,可以用它来计算两个变量的协方差。它接受两个参数,可以是1维数组或2维数组。
示例
在以下示例中,当我们将两个2维数组作为输入参数传递给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()函数来计算2维数组的协方差。
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()函数来计算1维数组的协方差 –
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()函数的1维数组的协方差。
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()函数来计算1-d数组的协方差。
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.]]