【发布时间】:2018-12-03 21:46:58
【问题描述】:
我有两个相同大小的 numpy 数组M X T(我们称它们为A 和B)。我想计算 A 和 B 中每对 同一行 m 之间的 Pearson 相关系数(所以,A[i,:] 和 B[i,:],然后是 A[j,:] 和 B[j,:] ; 但绝不是 A[i,:] 和 B[j,:],例如)。
我希望我的输出是形状为(M,) 的一维数组或形状为(M,1) 的二维数组。
数组非常大(大约 1-2 百万行),所以我正在寻找一种矢量化解决方案,可以让我避免 for 循环。抱歉,如果已经回答了这个问题,但似乎以前的答案(例如,this one)中的许多代码 sn-ps 旨在提供完整的M X M 相关矩阵 - 即所有可能对之间的相关系数行数,而不仅仅是索引匹配的行;我正在寻找的基本上只是这个矩阵的对角线,但是如果我只需要对角线,计算整个东西感觉很浪费 - 事实上,当我尝试这样做时它会抛出内存错误......
最快的实现方法是什么?提前非常感谢。
【问题讨论】:
标签: python arrays numpy correlation