使用numpy和生成器计算协方差矩阵

时间:2015-05-06 05:25:21

标签: python numpy generator

Numpy具有从数组中计算协方差的功能。但是,我想使用生成器来节省内存。如果没有编写我自己的cov函数,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:-1)

您可以使用以下实现:

from numpy import outer

def gen_cov(g):
    mean, covariance = 0, 0
    for i, x in enumerate(g):
       diff = x - mean
       mean += diff/(i+1)
       covariance += outer(diff, diff) * i / (i+1)
    return covariance/i

根据生成元素的不同,您可能希望使用与numpy.outer不同的内容。这是this answer的Python实现。