首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Scipy信号携带来自先前计算的正余额

使用Scipy信号携带来自先前计算的正余额
EN

Stack Overflow用户
提问于 2019-06-16 08:40:59
回答 1查看 56关注 0票数 1

有没有办法用scipy.signal代替循环来模拟下面的输出呢?

代码语言:javascript
运行
复制
import pandas as pd
df_in = pd.DataFrame({'Generated':[13,8,7,6],'Consume':[8,10,20,5]})
print(df_in)

   Generated  Consume
0         13        8
1          8       10
2          7       20
3          6        5

df_in['balance'] = [5,3,0,1]

其中13 -8等于余额5,5结存到下一行,5+8-10结转到下一行,3结转到下一行,3+7-10结转为负数,但不能结转为负。因此,下一行0进位+6-5 yeilds 1余额。

代码语言:javascript
运行
复制
print(df_in)

预期输出:

代码语言:javascript
运行
复制
   Generated  Consume  balance
0         13        8        5
1          8       10        3
2          7       20        0
3          6        5        1
EN

回答 1

Stack Overflow用户

发布于 2019-06-16 18:28:16

如果不是要求在余额为正的情况下仅对进位进行加法运算,您可以对差值使用累加器。这个累加器可以使用lfilter实现,从递归方程y[n+1] = y[n] + x[n]获得ba参数

代码语言:javascript
运行
复制
x = df_in['Generated'] - df_in['Consume']
df_in['balance'] = scipy.signal.lfilter([1], [1,-1], x)

不幸的是,只有在余额保持为正的情况下才添加进位,这会使过程变得非线性,scipy.signal.lfilter无法处理这一点。在这一点上,您将不得不求助于使用循环来处理特殊情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56615218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档