比方说,我有以下代码。
import numpy as np
import pandas as pd
x = pd.DataFrame(np.random.randn(100, 3)).rolling(window=10, center=True).cov()
对于每个索引,我都有一个3x3矩阵。我想计算特征值,然后计算这些特征值的某些函数。或者,也许我可能想计算特征值和特征向量的某些函数。关键是,如果我采用x.loc [0],那么从该矩阵计算任何内容都没有问题。如何滚动处理所有矩阵?
谢谢!
答案 0 :(得分:1)
您可以在 spicy.sparse.linalg 中使用类似的特征向量/特征值方法。
import numpy as np
import pandas as pd
from scipy import linalg as LA
x = pd.DataFrame(np.random.randn(100, 3)).rolling(window=10, center=True).cov()
for i in range(len(x)):
try:
e_vals,e_vec = LA.eig(x.loc[i])
print(e_vals,e_vec)
except:
continue
如果不存在NaN值,则无需使用try和,而是只进行for循环。