详解Numpy cov()(计算协方差矩阵)函数的作用与使用方法

yizhihongxing

Numpy cov()是一个用于计算协方差矩阵的函数。协方差矩阵是一个描述随机变量之间关系的矩阵,通常用于统计学和机器学习中的数据分析。

本文将介绍Numpy cov()的作用与使用方法,并提供两个实例详细说明。

作用

将数据集X的协方差矩阵进行计算,然后返回该矩阵。协方差矩阵描述了变量之间的关系、方向和强度。除此之外,协方差矩阵还可用于数据降维、找到数据集的主要统计特征等。

使用方法

numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)

参数解释:

  • m:要计算协方差矩阵的数据集。

  • y:第二个数据集,若给定则必须和第一个数据集的数据形状相同。

  • rowva|:如果值为True(默认设置),则表示行是具有不同变量的观测值。 如果值为False,则列是具有不同的变量的观测值

  • bias:如果值为True,则会对计算偏差进行校正。默认为False,不做偏差校正。

  • ddof:自由度校正值,表示数据集样本的数目,即n-1。如果指定,则当基于样本计算协方差矩阵时被用于从除数中减去。

  • fweights:表示观测值的浮点权重。

  • aweights:表示观测值的阵列权重。

返回值:

返回一个数组,表示给定数据集的协方差矩阵。如果输入是二维的,并且rowvar=True(默认),那么返回结果将是形状为(m,m)数组,其中m是输入数据中的唯一元素数量。如果y提供,则返回结果的形状为(m, n),其中ny中的独特元素的数量。

同时需要注意的是,在二维数据中,均值会按行计算并自动减去(仅当rowvar=True时)。

例如:

import numpy as np

# 样本数据,4个4维的样本
X = np.array([
    [1, 5, 3, 4],
    [2, 6, 5, 2],
    [9, 0, 1, 1],
    [4, 5, 6, 7]
])

# 计算协方差矩阵
cov_mat = np.cov(X, rowvar=False)
#cov_mat = np.cov(X.T)

print(cov_mat)

输出:

[[8.5        1.75      -14.        -3.25      ]
 [1.75       1.91666667 -2.25       0.58333333]
 [-14.        -2.25       1.66666667  7.25      ]
 [-3.25       0.58333333  7.25        3.91666667]]

接下来我们举两个实例进行说明:

例1:使用numpy的协方差函数计算两个一维数组的协方差矩阵

import numpy as np

x = [1, 2, 3, 4, 5]
y = [10, 9, 7, 6, 12]

# 计算两个一维数组的协方差矩阵
cov_mat = np.cov(x, y)

print(cov_mat)

输出:

[[ 2.5 -7. ]
 [-7.  16.3]]

输出结果解释:输入的两个数组x和y都只有一个维度。所以,输出的协方差矩阵是2x2的矩阵。矩阵的第一个元素是x的方差( 2.5 ),第二个元素是函数在y和x之间计算的协方差( -7 )。第三个元素是y的方差( 16.3 )。

例2:使用numpy的协方差函数计算二维数据集的协方差矩阵

import numpy as np

# 样本数据,4个4维的样本
X = np.array([
    [1, 5, 3, 4],
    [2, 6, 5, 2],
    [9, 0, 1, 1],
    [4, 5, 6, 7]
])

# 计算协方差矩阵
cov_mat = np.cov(X, rowvar=False)

print(cov_mat)

输出结果:

[[12.66666667 -9.         -4.66666667 -3.66666667]
 [-9.          7.33333333  5.          3.66666667]
 [-4.66666667  5.          4.91666667  4.16666667]
 [-3.66666667  3.66666667  4.16666667  7.        ]]

输出结果解释:这个例子是一个具有4个样本和每个样本的4个维度的二维数据集。

sample1的各个维度的平均值是( 4.0 4.0 3.75 3.5),x的平均值是4.9375, y的平均值是4.8125,z的平均值是4.125,而w的平均值是3.25。根据上面的公式,我们可以计算每个元素的协方差。

注意,函数在计算协方差矩阵时自动减去了均值。最终输出的协方差矩阵大小为4x4。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Numpy cov()(计算协方差矩阵)函数的作用与使用方法 - Python技术站

(0)
上一篇 2023年3月22日
下一篇 2023年3月22日

相关文章

  • 详解Numpy interp()(一维线性插值)函数的作用与使用方法

    Numpy interp()是一个在一维和多维数组上执行线性插值的函数。它将给定x和y点集中的值之间进行线性插值,并返回给定点的函数值。 下面是Numpy interp()的完整使用方法: 语法 numpy.interp(x, xp, fp, left=None, right=None, period=None) 参数 x:必需,待插值数据。可以是一个数值、…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy isnan()(判断元素是否为NaN)函数的作用与使用方法

    numpy.isnan()函数用于判断一个数组中的元素是否为NaN(not a number)。NaN是一个特殊的浮点数,用于表示不可能的数值,例如0/0、∞/∞等。 函数语法为: numpy.isnan(x) 其中,x为待判断的数组。 函数返回一个布尔型数组,其中True表示对应的元素是NaN,False表示对应的元素不是NaN。 示例1:判断数组中元素是…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy log()(计算自然对数函数)的作用与使用方法

    作用 Numpy中的log()函数用于计算给定数组中所有元素的自然对数。自然对数是以e为底的对数,其中e是自然常数(约等于2.71828)。log()函数的返回值是一个新的数组,其中包含输入数组中每个元素的自然对数。 使用方法 在numpy中使用log()函数的方法如下: import numpy as np arr = np.array([1, 2, 3,…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy clip()(数组元素裁剪)函数的作用与使用方法

    Numpy clip()函数是一种用于限制数组元素数值范围的函数,可以将数组的元素限定在一定的范围内。常常用于数据处理和数据分析中。 该函数的语法为:numpy.clip(a, a_min, a_max, out=None) 其中,a是待限制元素的数值的数组;a_min是限制最小数值范围的指定值;a_max是限制最大数值范围的指定值;out是可选项,是输出结…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy split()(沿着指定的轴分割数组)函数的作用与使用方法

    Numpy split()函数是用于将一个numpy数组沿着指定轴(axis)分割成多个子数组。其语法如下: numpy.split(ary, indices_or_sections, axis=0) 其中,参数ary是要分割的numpy数组,indices_or_sections用于指定分割点或分割段的数量或者位置,axis是指定分割轴的方向。返回值是分割…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy dstack()(深度堆叠数组)函数的作用与使用方法

    Numpy dstack()是Numpy库中的一个函数,用于沿深度方向将数组进行堆叠,具体来说,它将相同尺寸的数组沿着第三个维度(深度方向)进行水平叠加,返回一个新的数组。其语法如下: numpy.dstack(tup) 其中,tup是一个由要堆叠的数组组成的序列。 下面给出两个使用dstack()函数的实例来更好地理解它的作用和用法: 将两个二维数组进行堆…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy fft()(快速傅里叶变换)函数的作用与使用方法

    Numpy fft()函数是对一维或者二维的数组进行快速傅里叶变换(FFT),其函数原型为:numpy.fft.fft(a, n=None, axis=-1, norm=None),参数含义如下: a:接受一个实数组或复数数组 n:可选项,表示傅里叶变换的长度,如果不指定则默认为a的长度 axis:可选参数,表示进行傅里叶变换的轴,默认情况下,对于一维的数组…

    Numpy函数大全 2023年3月22日
    00
  • 详解Numpy argmax()(返回数组元素的最大值的索引)函数的作用与使用方法

    Numpy argmax()函数用于返回给定数组中的最大值所在的索引位置。 它的语法格式如下: numpy.argmax(arr, axis=None, out=None) 参数说明: arr:传入的待计算数组,必须为一维或多维数组。 axis:可选参数,用于指定在哪个维度上进行计算,其取值范围为0到N-1(N为数组的维度数)。 out:可选参数,用于指定输…

    Numpy函数大全 2023年3月22日
    00
合作推广
合作推广
分享本页
返回顶部