【发布时间】:2019-05-22 09:41:12
【问题描述】:
我想将pandas.rolling(window).apply(func) 范式应用于 numpy 数组。在搜索came across this function for numpy 时。这就是我对它所做的。
def rolling_apply(fun, a, w):
r = np.empty(a.shape)
r.fill(np.nan)
for i in range(w - 1, a.shape[0]):
r[i] = fun(a[(i-w+1):i+1])
return r
def test(x):
return x.sum()
arr=np.random.rand(20)
e=rolling_apply(test,arr,10)
运行时出现此错误
ValueError: 使用序列设置数组元素。
你能告诉我为什么会发生这个错误
编辑:
这项工作我在上面的代码中犯了一个初始错误。这是有效的
【问题讨论】:
-
为什么你不能将你的函数应用到整个数组,然后根据你的要求进行滚动切片?