相关疑难解决方法(0)

计算两个多维数组之间的相关系数

我有两个具有形状N X T和数组的阵列M X T.我想计算T每对可能的行nm(分别来自NM)之间的相关系数.

什么是最快,最pythonic的方式来做到这一点?(循环过来N,M在我看来既不快也不是pythonic.)我期待答案涉及numpy和/或scipy.现在我的数组是numpy arrays,但我愿意将它们转换为不同的类型.

我期待我的输出是一个形状的数组N X M.

NB当我说"相关系数"时,我的意思是Pearson乘积矩相关系数.

以下是一些需要注意的事项:

  • numpy函数correlate要求输入数组为一维.
  • numpy函数corrcoef接受二维数组,但它们必须具有相同的形状.
  • scipy.stats函数pearsonr要求输入数组为一维.

python arrays numpy scipy correlation

22
推荐指数
2
解决办法
3万
查看次数

两个特征矩阵的有效成对相关

在Python中,我需要找到矩阵中A所有要素与矩阵中所有要素之间的成对相关性B.特别是,我在寻找,在一个给定的特征最强的Pearson相关有意思A具有横跨所有功能B.我不关心最强的相关性是正面还是负面.

我在下面使用了两个循环和scipy完成了一个低效的实现.但是,我想使用np.corrcoef或其他类似的方法来有效地计算它.Matrix的A形状为40000x400,B形状为40000x1440.我有效地尝试这种方法可以在下面看作方法find_max_absolute_corr(A,B).但是,它失败并出现以下错误:

ValueError: all the input array dimensions except for the concatenation axis must match exactly.

import numpy as np
from scipy.stats import pearsonr


def find_max_absolute_corr(A, B):
    """ Finds for each feature in `A` the highest Pearson
        correlation across all features in `B`. """

    max_corr_A = np.zeros((A.shape[1]))    

    for A_col in range(A.shape[1]):
        print "Calculating {}/{}.".format(A_col+1, A.shape[1])

        metric = A[:,A_col]
        pearson = np.corrcoef(B, metric, rowvar=0) …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix vectorization correlation

5
推荐指数
1
解决办法
2638
查看次数

标签 统计

correlation ×2

numpy ×2

python ×2

arrays ×1

matrix ×1

scipy ×1

vectorization ×1