Векторизация для цикла по функции панды ewm - PullRequest
1 голос
/ 25 мая 2019

Итак, я хочу векторизовать цикл for, чтобы ускорить процесс.мой код следующий:

import numpy as np
import pandas as pd


def my_func(array, n):
    return pd.Series(array).ewm(span = n, min_periods = n-1).mean().to_numpy()

np.random.seed(0)
data_size = 120000

data = np.random.uniform(0,1000, size = data_size)+29000

loop_size = 1000
step_size = 1

X = np.zeros([data.shape[0], loop_size])
parameter_array = np.arange(1,loop_size+ step_size, step_size)

for i in parameter_array:
    X[:, i-1] = my_func(data, i)

Весь цикл for занимает около минуты, чтобы закончить, что может стать проблемой для будущего применения.Я уже проверил numpy.vectorize () , но в нем четко указано, что это только для удобства, поэтому его использование не ускорит код на порядок.

Мой вопрос заключается в том, есть ли способ векторизации цикла for, как этот?Если да, могу ли я увидеть простой пример того, как это можно сделать?

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...