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