generalized cumulative functions in NumPy/SciPy?

The ValueError above is still a bug using Numpy 1.20.1 (with Python 3.9.1). Luckily a workaround was discovered that uses casting: https://groups.google.com/forum/#!topic/numpy/JgUltPe2hqw import numpy as np uadd = np.frompyfunc(lambda x, y: x + y, 2, 1) uadd.accumulate([1,2,3], dtype=object).astype(int) # array([1, 3, 6]) Note that since the custom operation works on an object type, it won’t … Read more

Conditional cumsum with reset

I think this is not easily vectorizable…. at least i do not know how. You can do it by hand via: my_cumsum <- function(x){ grp = integer(length(x)) grp[1] = 1 for(i in 2:length(x)){ if(x[i-1] + x[i] <= 10){ grp[i] = grp[i-1] x[i] = x[i-1] + x[i] } else { grp[i] = grp[i-1] + 1 } … Read more