Python 数据帧的np.corrcoef行为
我使用我为计算每个组的一系列总和而构建的脚本观察到以下情况:Python 数据帧的np.corrcoef行为,python,pandas,numpy,series,Python,Pandas,Numpy,Series,我使用我为计算每个组的一系列总和而构建的脚本观察到以下情况: In [291]: sums_per_group2 Out[291]: test_group control_group one 4551.658544 4449.3 three 3770.712771 3430.5 two 9328.171538 8673.9 In [292]: sums_per_group2.shape Out[292]: (3,
In [291]: sums_per_group2
Out[291]:
test_group control_group
one 4551.658544 4449.3
three 3770.712771 3430.5
two 9328.171538 8673.9
In [292]: sums_per_group2.shape
Out[292]: (3, 2)
In [293]: np.corrcoef(sums_per_group2)
Out[293]:
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
In [294]: np.corrcoef(sums_per_group2.values)
Out[294]:
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
In [295]: sums_per_group2.values.shape
Out[295]: (3, 2)
In [296]: np.corrcoef(sums_per_group2.iloc[:,0],sums_per_group2.iloc[:,1])
Out[296]:
array([[ 1. , 0.99853641],
[ 0.99853641, 1. ]])
In [296]: sums_per_group2.iloc[:,0].shape
Out[296]: (3,)
In [297]: sums_per_group2.iloc[:,1].shape
Out[297]: (3,)
正如您所看到的,np.corrcoef()的任何输入之间的形状都非常精确
有人能帮我理解这一点吗?如果要将其作为2d数组传递,需要将
sum\u per\u group2
变量进行转置:
np.corrcoef(sum_per_group2.T)
# array([[ 1. , 0.99853641],
# [ 0.99853641, 1. ]])
以下是关于x
参数的文档:
x:数组_-like
包含多个变量和观测值的一维或二维数组。
每行x
代表一个变量,每列代表一个变量
观察所有这些变量。另请参见下面的rowvar
传入二维数组时,请确保列为“观察”,行为“变量”或“特征”;计算行之间的相关性。或设置rowvar=0
:
np.corrcoef(sum_per_group2, rowvar=0)
#array([[ 1. , 0.99853641],
# [ 0.99853641, 1. ]])
如果不转置2d数组,该方法会将行解释为向量,因此在前几种情况下,它会计算所有行组合的相关系数,因为每一行的长度为2向量,所以当您尝试用两点拟合直线时,会得到所有1作为系数(始终完美拟合).如果要将其作为2d数组传递,则需要将
sum\u per\u group2
变量转置:
np.corrcoef(sum_per_group2.T)
# array([[ 1. , 0.99853641],
# [ 0.99853641, 1. ]])
以下是关于x
参数的文档:
x:数组_-like
包含多个变量和观测值的一维或二维数组。
每行x
代表一个变量,每列代表一个变量
观察所有这些变量。另请参见下面的rowvar
传入二维数组时,请确保列为“观察”,行为“变量”或“特征”;计算行之间的相关性。或设置rowvar=0
:
np.corrcoef(sum_per_group2, rowvar=0)
#array([[ 1. , 0.99853641],
# [ 0.99853641, 1. ]])
如果不转置2d数组,该方法会将行解释为向量,因此在前几种情况下,它会计算所有行组合的相关系数,因为每一行的长度为2向量,所以当您尝试用两点拟合直线时,会得到所有1作为系数(始终完美拟合).感谢您对函数工作原理的澄清,我错过了向量行。因此,现在这是有意义的,我想知道为什么这个错误,能够系统地产生一个1相关系数。但我没有考虑我的体型。现在我应该试着修改它,以更好地测试函数行为。感谢对函数工作原理的澄清,我错过了作为向量的行。因此,现在这是有意义的,我想知道为什么这个错误,能够系统地产生一个1相关系数。但我没有考虑我的体型。现在,我应该尝试更改它以更好地测试函数行为。