【发布时间】:2019-04-18 11:14:23
【问题描述】:
我有一个预测算法,它使用以下代码处理时间序列的趋势直到给定范围:
import numpy as np
horizon = 91
phi = 0.2
trend = -0.004
trend_up_to_horizon = np.cumsum(phi ** np.arange(horizon) + 1) * self.trend
在此示例中,前两个 trend_up_horizon 值是:
array([-0.008 , -0.0128])
有没有一种计算速度更快的方法来实现这一点?目前这需要很长时间,因为我猜使用np.cumsum 方法和** 运算符很昂贵。
感谢您的帮助
【问题讨论】:
-
您的实际数据集的
horizon值是多少? -
@Divakar 地平线值为
horizon = 91。 -
什么是“长时间”?我得到:
%timeit np.cumsum(0.2 ** np.arange(91) + 1)是 7.2 微秒,没有 cumsum 需要 3.9 微秒。也许迭代器可以用更少的乘法更快地生成数组?
标签: python numpy cumulative-sum