我想计算2个数组之间的相关性。为此,我想使用NumPy。
我在一个小例子上使用了numpy.correlate
函数:
import numpy as np
a = [1, 2, 3]
b = [2, 3, 4]
np.correlate(a, b)
>>> np.array([20])
我真的不知道如何解释这个结果。我想要的是-1和1之间的数字来表示相关性,1表示数组正相关,-1表示数组负相关。
我怎样才能得到这个号码?
答案 0 :(得分:4)
你使用了错误的功能。您正在寻找实际计算相关系数的numpy.corrcoef
。
a = [1, 2, 3]
b = [2, 3, 4]
>>> np.corrcoef(a, b)
array([[ 1., 1.],
[ 1., 1.]])
Hooked As mentioned,它返回协方差矩阵的值矩阵。
如果您需要Pearson相关系数,可以使用pearsonr
中的scipy.stats.stats
。 Hooked's answer here是此方法的正确实现。