尝试在python中有效地计算相关矩阵
Posted
技术标签:
【中文标题】尝试在python中有效地计算相关矩阵【英文标题】:Trying to compute correlation matrix efficiently in python 【发布时间】:2017-11-28 05:39:31 【问题描述】:我有一个非常大的 numpy 数据数组(100K 列乘 7K 行),我想计算列之间的所有成对 Pearson 相关性(~(100,000^2)/2 = 50 亿个相关性)。该数组几乎不适合 RAM,所以简单的方法不会削减它,我也想合理有效地做到这一点。有没有办法做到这一点(最好在 Python 中,尽管 C/C++ 也可以接受)?任何与此并行的方法也会更有帮助,因为我希望在合理的时间内完成它。
我已经尝试过使用numpy.corrcoef
函数,但这只使用了一个处理器,而且还引发了内存错误。
【问题讨论】:
【参考方案1】:我正在使用DeepGraph 库来并行运行它。我按照他们那里的教程生成大型相关矩阵。它现在正在运行,在我的 8*3.4GHz 机器上似乎需要(仅!!)2 小时。我正在使用我 16GB 的大部分 RAM 来执行此操作,但似乎一切都保持在一起。
【讨论】:
你有任何代码可以显示如何从 (n,m) -> (m,m) 矩阵中走出来吗?以上是关于尝试在python中有效地计算相关矩阵的主要内容,如果未能解决你的问题,请参考以下文章