使用Python/Numpy对np.cov的方差/含义求和
使用Python: 因此,我有一个名为File的数据框架,我想在其中找到其中一列“Prices”的总体差异 对于方差公式,我知道必须包含协方差 我读到np.cov将产生一个协方差矩阵。然而,当我使用它时,我没有得到矩阵(或者我认为是这样) 我的代码使用Python/Numpy对np.cov的方差/含义求和,python,numpy,covariance,variance,Python,Numpy,Covariance,Variance,使用Python: 因此,我有一个名为File的数据框架,我想在其中找到其中一列“Prices”的总体差异 对于方差公式,我知道必须包含协方差 我读到np.cov将产生一个协方差矩阵。然而,当我使用它时,我没有得到矩阵(或者我认为是这样) 我的代码 np.cov(File['Prices']) 给我 array(2118322.0106797763) 然后,这个答案是否计算以下函数:Var(所有价格)=Var(价格1)+…+Var(价格N)+2[Cov(X1,X2)+…+Cov(N-1,N
np.cov(File['Prices'])
给我
array(2118322.0106797763)
然后,这个答案是否计算以下函数:Var(所有价格)=Var(价格1)+…+Var(价格N)+2[Cov(X1,X2)+…+Cov(N-1,N)]
那么2118322实际上是方差的总和?我希望得到的矩阵不是我实际得到的矩阵。你只是传递一个序列,所以你得到的是一个方差 基本上,你在做一些事情,比如:
np.cov([3.4, 5.6, ..., 9.8, 4.5])
…这只会产生序列的方差
如果需要描述多个变量之间关系的协方差矩阵,则需要传入2D数组。默认情况下,numpy.cov
需要一个numdimensions x numsamples
数组。(这可以通过使用rowvar=False
或仅通过传递数据的转置来更改。)
基本上是这样的:
import numpy as np
# Generate two 100-sample sequences
data = np.random.random((2, 100))
print np.cov(data)
或者使用pandas
dataframe,只需调用cov
方法:
import numpy as np
import pandas as pd
# Generate two 100-sample sequences
x, y = np.random.random((2, 100))
data = pd.DataFrame(dict(x=x, y=y))
# Similarly, we could have done "np.cov(data.T)", though that would yield
# an array instead of a dataframe
print data.cov()
您不应该调用变量
文件
,它是python中的保留关键字。如果必须,请将其称为“我的文件”。您的数据帧是pandas
dataframe吗?传递到np.cov
的数据的形状是什么?我实际上在实际代码中称之为Catalog。好主意!这是一个好主意。数据的形状是一个大约有100000个值的序列,所以Catalog['Price']只列出了一个目录中的所有价格