計算兩個給定的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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告