如何滚动计算一个数组里面连续增大的个数

[1,2,3,4,3,2,4],这么一个数组,我想滚动计算前n个里面,连续增大的个数,比如n=3 ,结果是[2,2,1,0,1]。中间也可能有很多连续相同的,例如[2,2,2,4,3,2,4],相同的不算是增大,请问有什么简单的方法?

请先 登录 后评论

1 个回答

wale

用rolling函数:

x = [1,2,3,4,3,2,4]
rolling(def (x) -> sum(deltas(x)>0), x, 3)

或者用moving:

moving(defg (x) -> sum(deltas(x)>0), x, 3)

但结果前有n-1个null,而且moving输入的函数需要是聚合函数。

offset	0	1	2	3	4	5	6
0			2	2	1	0	1

请先 登录 后评论