У меня есть набор данных, который я разработал, используя цикл (код ниже).
## A subset of the data
deficit = (E_daily[:,160,100] - P_daily[:,160,100]) # A view of `deficit` is given below
deficit_cum = np.zeros([365])
start = 0
stop = 0
for i in range(365):
deficit_cum[i] = deficit[i] + deficit_cum[i-1]
if deficit_cum[i] >= 0:
if np.nanmax(deficit_cum) <= deficit_cum[i]:
stop = i
else:
continue
else:
deficit_cum[i] = 0
if np.nanmax(deficit_cum) > deficit_cum[i]:
continue
else:
start = i #Start is not defined correctly by me
Так выглядит deficit
перед циклом 
Теперь меня также интересует индекс значений, из которых мой циклначинается и где это заканчивается. Я знаю, что это сбивает с толку, вот пример (ниже выглядит deficit_cum
):

На рисунке выше зеленая линия определяет start
(ось X) и красная линия определяют stop
(ось X) из кода. Поэтому я хочу, чтобы максимальное значение было моим stop
баллом. Но я хочу, чтобы мой start
был меньше, чем стоп, и не должно быть никаких отрицательных точек между start
и stop
. Так что для диаграммы ниже мой start
должен быть около 111, а stop
должен быть около 236.
Я думаю, что знаю, как получить stop
(код выше), ноУ меня все еще проблемы с определением start
. [Дополнительная информация: My start
должно быть индексом последнего нуля перед глобальным максимумом, а stop
должно быть индексом глобального максимума]