相关疑难解决方法(0)

Pandas中的递归定义

我有一个时间序列,A持有几个值.我需要获得一个B代数定义的系列如下:

B[t] = a * A[t] + b * B[t-1]
Run Code Online (Sandbox Code Playgroud)

在哪里我们可以假设B[0] = 0,a并且b是实数.

有没有办法在Pandas中进行这种类型的递归计算?或者我没有选择,只能按照这个答案中的建议循环使用Python ?

作为输入的一个例子:

> A = pd.Series(np.random.randn(10,))

0   -0.310354
1   -0.739515
2   -0.065390
3    0.214966
4   -0.605490
5    1.293448
6   -3.068725
7   -0.208818
8    0.930881
9    1.669210
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

18
推荐指数
1
解决办法
2609
查看次数

python递归矢量化与时间序列

我有一个时间序列需要递归处理以获得时间序列结果(res).这是我的示例代码:

res=s.copy()*0  
res[1]=k # k is a constant  
for i in range(2,len(s)):  
    res[i]=c1*(s[i]+s[i-1])/2 +c2*res[i-1]+c3*res[i-2]
Run Code Online (Sandbox Code Playgroud)

其中c1,c2,c3是常数.它工作正常,但我想使用矢量化,我试过:

res[2:]=c1*(s[2:]+s[1:-1])/2+c2*res[1:-1]+c3*res[0:-2]  
Run Code Online (Sandbox Code Playgroud)

但我得到"ValueError:
如果我试着, 操作数不能与形状(1016)(1018)一起广播"

res=c1*(s[2:]+s[1:-1])/2+c2*res[1:-1]+c3*res[0:-2]  
Run Code Online (Sandbox Code Playgroud)

没有给出任何错误,但是我得不到正确的结果,因为必须在计算发生之前初始化res [0]和res [1].有没有办法用矢量化处理它?
任何帮助将不胜感激,谢谢!

python recursion numpy time-series vectorization

5
推荐指数
1
解决办法
1574
查看次数

标签 统计

numpy ×2

python ×2

pandas ×1

recursion ×1

time-series ×1

vectorization ×1