Numpy 相关混淆

Numpy correlation confusion

我想计算两个数组之间的相关性。为此,我想使用 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 表示数组负相关。

我怎样才能得到这个号码?

你用错了函数。您正在寻找 numpy.corrcoef,它实际上计算相关系数。

a = [1, 2, 3]
b = [2, 3, 4]

>>> np.corrcoef(a, b)
array([[ 1.,  1.],
       [ 1.,  1.]])

by Hooked,这个 returns 来自协方差矩阵的值矩阵。

如果您想要 Pearson 相关系数,可以使用 scipy.stats.stats 中的 pearsonrHooked's answer here 是此方法的正确实现。