如何在python中获得两个向量的相关性[重复]
Posted
技术标签:
【中文标题】如何在python中获得两个向量的相关性[重复]【英文标题】:How to get correlation of two vectors in python [duplicate] 【发布时间】:2013-10-26 00:29:16 【问题描述】:我在 matlab 中使用
a=[1,4,6]
b=[1,2,3]
corr(a,b)
返回 .9934。我试过numpy.correlate
,但它返回的东西完全不同。获得两个向量相关性的最简单方法是什么?
【问题讨论】:
见@lgautier 回答[这里]***.com/a/15026044/1982962) 你试过 corrcoef:docs.scipy.org/doc/numpy/reference/generated/… 【参考方案1】:文档表明 numpy.correlate
不是您要查找的内容:
numpy.correlate(a, v, mode='valid', old_behavior=False)[source]
Cross-correlation of two 1-dimensional sequences.
This function computes the correlation as generally defined in signal processing texts:
z[k] = sum_n a[n] * conj(v[n+k])
with a and v sequences being zero-padded where necessary and conj being the conjugate.
相反,正如其他 cmets 所建议的,您正在寻找 Pearson correlation coefficient。要使用 scipy 尝试:
from scipy.stats.stats import pearsonr
a = [1,4,6]
b = [1,2,3]
print(pearsonr(a,b))
这给了
(0.99339926779878274, 0.073186395040328034)
你也可以使用numpy.corrcoef
:
import numpy
print(numpy.corrcoef(a,b))
这给出了:
[[ 1. 0.99339927]
[ 0.99339927 1. ]]
【讨论】:
“pearsonr(a,b)”打印的元组中的第二个值是多少? @MuhammadHaseebKhan 根据docs,它返回的值是(皮尔逊相关系数,2 尾 p 值) 嗨@Hooked:我在 2 列中有 2 个向量。我希望他们的 corr coef 在另一列中。我怎样才能做到这一点?谢谢!以上是关于如何在python中获得两个向量的相关性[重复]的主要内容,如果未能解决你的问题,请参考以下文章