Подвижная многомерная функция в пандах - PullRequest
0 голосов
/ 20 января 2019

Допустим, у меня есть следующий код.

import numpy as np
import pandas as pd

x = pd.DataFrame(np.random.randn(100, 3)).rolling(window=10, center=True).cov()

Для каждого индекса у меня есть матрица 3х3. Я хотел бы рассчитать собственные значения, а затем некоторую функцию этих собственных значений. Или, возможно, я мог бы хотеть вычислить некоторую функцию от собственных значений и собственных векторов. Дело в том, что если я возьму x.loc [0], у меня не возникнет проблем с вычислением чего-либо из этой матрицы. Как я могу сделать это по-разному для всех матриц?

Спасибо!

1 Ответ

0 голосов
/ 20 января 2019

Вы можете использовать аналогичные методы собственного вектора / собственного значения в 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 и только вместо этого идти только для цикла.

...