Вы можете рассчитать совокупную сумму, а затем вычислить .argmax(..)
, где она больше или равна пороговому значению:
>>> np.argmax(np.hstack((a.cumsum() >= 6, True))) + 1
4
Поскольку a.cumsum()
является накопленной суммой, и, таким образом:
>>> a.cumsum()
array([ 0, 1, 3, 6, 10, 15])
и, таким образом, мы вычисляем первый индекс, где порог удовлетворяется:
>>> a.cumsum() >= 6
array([False, False, False, True, True, True])
Мы добавляем True
, так что в случае, если нет равенства, удовлетворяющего порогу, оно вернет количество элементов плюс один.