【发布时间】:2019-09-10 02:21:48
【问题描述】:
- 根据另一个数组的当前值设置数组大小为 n 的窗口的值
- 忽略窗口覆盖的值
- 需要能够为不同的运行更改窗口大小 (n)
此代码有效,但速度很慢。
n = 3
def signal(arr):
signal = pd.Series(data=0, index=arr.index)
i = 0
while i < len(arr) - 1:
s = arr.iloc[i]
if s in [-1, 1]:
j = i + n
signal.iloc[i: j] = s
i = i + n
else:
i += 1
return signal
arr = [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0]
signal = [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0]
【问题讨论】:
-
你能把你的问题说得更清楚一些,比如你的输入是什么,你的期望输出是什么?在代码形成中。
-
更新:arr 是输入 - 信号是输出
-
请提供
arr作为机器可读代码。
标签: python numpy vectorization