Вот пошаговый рецепт с комментариями.
a = [-3,4,5,-1,-2,-5,1,4,6,9,-3,-3,-1,-2,4,1,4]
th = -1
a = np.array(a)
# create mask of events; find indices where mask switches
intervals = np.where(np.diff(a<=th, prepend=0, append=0))[0].reshape(-1,2)
# discard short stretches
intervals = intervals[np.subtract(*intervals.T) <= -3]
intervals
# array([[ 3, 6],
# [10, 14]])
# get corresponding data
stretches = np.split(a, intervals.reshape(-1))[1::2]
stretches
# [array([-1, -2, -5]), array([-3, -3, -1, -2])]
# count events
-np.subtract(*intervals.T)
# array([3, 4])
# sum events
np.add.reduceat(a, intervals.reshape(-1))[::2]
# array([-8, -9])