【发布时间】:2014-05-21 05:25:47
【问题描述】:
我有两个 numpy 数组
X.shape = (100, 10)
Y.shape = (100, 10)
我想找到 X 和 Y 列之间的 pearson 相关性
即
from scipy.stats.stats import pearsonr
def corr( X, Y ):
return np.array([ pearsonr( x, y )[0] for x,y in zip( X.T, Y.T ) ] )
corr( X, Y ).shape = (10, )
有这个功能吗?到目前为止,我能找到的所有函数都计算相关矩阵。 Matlab 中有一个成对相关函数,所以我很确定一定有人为 Python 写过一个。
我之所以不喜欢上面的示例函数是因为它看起来很慢。
【问题讨论】:
-
pearsonr,如果你只是想要相关性,那就是
np.corrcoef(x, y, rowvar=0, bias=?)。但是,np.corrcoef 也会计算联合相关矩阵中的 corr(X, X) 和 corr(Y, Y)。 -
你看过stackoverflow.com/questions/19401078/…是否对你有帮助吗?