1
私はSTDとの相関を計算する、私が何らかの理由のためにいくつかの資産Pythonのパンダ、行によって外積、(N、K)データフレームの(N、K、K)パネル
rtns = pd.util.testing.makeTimeDataFrame(5000) # 5000 x 4
stds = pd.rolling_std(rtns, 20) # 5000 x 4
corMat = pd.ewmcorr(rtns, com = 50) # 5000 x 4 x 4
があると共分散行列を再構築する。私は、メインの心配がnp.outerは、列名を失い、性感染症やcorMatで資産が異なって注文された場合、それが不一致を引き起こす可能性があるということであるループ
out = corMat * 0
for (d,v) in stds.iterrows():
out[d] = np.outer(v,v) * corMat[d]
でこれを行うことができます。もちろん、ループは遅いです。
このループを置き換えるためのパンダ/ numpy操作はありますか(自動的にアセット名の一致を処理しますか)?