當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy corrcoef用法及代碼示例


本文簡要介紹 python 語言中 numpy.corrcoef 的用法。

用法:

numpy.corrcoef(x, y=None, rowvar=True, bias=<no value>, ddof=<no value>, *, dtype=None)

返回 Pearson product-moment 相關係數。

請參閱文檔numpy.cov了解更多詳情。相關係數矩陣之間的關係,R,以及協方差矩陣,C, 是

R 的值介於 -1 和 1 之間,包括端值。

參數

x array_like

包含多個變量和觀察值的一維或二維數組。 x 的每一行代表一個變量,每一列都是對所有這些變量的一次觀察。另請參閱下麵的 rowvar。

y 數組,可選

一組額外的變量和觀察結果。 y 與 x 具有相同的形狀。

rowvar 布爾型,可選

如果 rowvar 為 True(默認),則每一行代表一個變量,列中包含觀察值。否則,關係被轉置:每列代表一個變量,而行包含觀察值。

bias _NoValue,可選

沒有效果,請勿使用。

ddof _NoValue,可選

沒有效果,請勿使用。

dtype 數據類型,可選

結果的數據類型。默認情況下,返回數據類型將至少具有 numpy.float64 精度。

返回

R ndarray

變量的相關係數矩陣。

注意

由於浮點舍入,結果數組可能不是 Hermitian,對角線元素可能不是 1,元素可能不滿足不等式 abs(a) <= 1。實部和虛部被裁剪到區間 [-1 , 1] 試圖改善這種情況,但在複雜的情況下並沒有多大幫助。

此函數接受但丟棄參數偏差和 ddof。這是為了向後兼容此函數的先前版本。這些參數對函數的返回值沒有影響,可以在這個和以前版本的 numpy 中安全地忽略。

例子

在此示例中,我們生成兩個隨機數組 xarryarr ,並計算行和列 Pearson 相關係數 R 。由於 rowvar 默認為真,我們首先找到 xarr 變量之間的逐行 Pearson 相關係數。

>>> import numpy as np
>>> rng = np.random.default_rng(seed=42)
>>> xarr = rng.random((3, 3))
>>> xarr
array([[0.77395605, 0.43887844, 0.85859792],
       [0.69736803, 0.09417735, 0.97562235],
       [0.7611397 , 0.78606431, 0.12811363]])
>>> R1 = np.corrcoef(xarr)
>>> R1
array([[ 1.        ,  0.99256089, -0.68080986],
       [ 0.99256089,  1.        , -0.76492172],
       [-0.68080986, -0.76492172,  1.        ]])

如果我們添加另一組變量和觀察值 yarr ,我們可以計算 xarryarr 中變量之間的逐行 Pearson 相關係數。

>>> yarr = rng.random((3, 3))
>>> yarr
array([[0.45038594, 0.37079802, 0.92676499],
       [0.64386512, 0.82276161, 0.4434142 ],
       [0.22723872, 0.55458479, 0.06381726]])
>>> R2 = np.corrcoef(xarr, yarr)
>>> R2
array([[ 1.        ,  0.99256089, -0.68080986,  0.75008178, -0.934284  ,
        -0.99004057],
       [ 0.99256089,  1.        , -0.76492172,  0.82502011, -0.97074098,
        -0.99981569],
       [-0.68080986, -0.76492172,  1.        , -0.99507202,  0.89721355,
         0.77714685],
       [ 0.75008178,  0.82502011, -0.99507202,  1.        , -0.93657855,
        -0.83571711],
       [-0.934284  , -0.97074098,  0.89721355, -0.93657855,  1.        ,
         0.97517215],
       [-0.99004057, -0.99981569,  0.77714685, -0.83571711,  0.97517215,
         1.        ]])

最後,如果我們使用選項 rowvar=False ,列現在被視為變量,我們將在 xarryarr 中找到變量之間的列式 Pearson 相關係數。

>>> R3 = np.corrcoef(xarr, yarr, rowvar=False)
>>> R3
array([[ 1.        ,  0.77598074, -0.47458546, -0.75078643, -0.9665554 ,
         0.22423734],
       [ 0.77598074,  1.        , -0.92346708, -0.99923895, -0.58826587,
        -0.44069024],
       [-0.47458546, -0.92346708,  1.        ,  0.93773029,  0.23297648,
         0.75137473],
       [-0.75078643, -0.99923895,  0.93773029,  1.        ,  0.55627469,
         0.47536961],
       [-0.9665554 , -0.58826587,  0.23297648,  0.55627469,  1.        ,
        -0.46666491],
       [ 0.22423734, -0.44069024,  0.75137473,  0.47536961, -0.46666491,
         1.        ]])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.corrcoef。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。