私は変数が列であり、両方の行列が同じ数のサンプルを持つ2つの行列を持っています。大きな相関行列を計算するメモリ効率的な方法は?
一つの行列は200 800であり、他方が、私はこれを試してみたので、これらの行列の列間の相関行列を計算したい100000 800です:
import numpy as np
def matcor(x, y):
xc = x.shape[1]
return np.corrcoef(x, y, rowvar=False)[xc:, :xc]
xy_cor = matcor(X, Y)
しかし、これが終わります大量のメモリを使用すると、使用されるメモリが約64GBになるとメモリエラーが発生し、それ以上のメモリを占有する可能性があります。これを計算するメモリ効率的な方法はありますか?
達成しようとしていることは何ですか?あなたの問題には100200個の変数があるので、相関行列は100200 x 100200になります。最初の変数と2番目の変数の間の相関のみに興味がありますか?結果は200 x 100000になりますか? –
私の理解から、返される完全な行列の形式は次のとおりです。 '' 'xx | xy yx | yy '' ' だから' yx'や 'xy'だけが' yx.T 'になります。 – UberStuper