Python - поиск максимума внутри диапазона

Всем привет! Есть список а из которого рассчитывается накопительный итог (список х). Далее в списке х идет поиск минимального значения и максимального, которое должно быть строго (!) до минимума. Текущий вариант почему-то возвращает максимум всего списка х (41), а должен быть 17

import numpy as np

a=[17,-2,8,17,1,-7,3, -15,19, -13]
x=list(np.cumsum(a))
y=min(x)
z=max(x[:y])


print(f'list {x}')
print(f'minimum {y}')
print(f'maximum {z}')

Ответы (1 шт):

Автор решения: CrazyElf

Потому что в срезе нужно использовать индекс минимального значения, а не само значение:

import numpy as np

a = np.array([17,-2,8,17,1,-7,3, -15,19, -13])
x = np.cumsum(a)
y = np.argmin(x) # <-- ищем индекс минимума!
z = np.min(x[:y])

print(f'list {x}')
print(f'minimum {x[y]}') # <-- значение минимума берём по индексу
print(f'maximum {z}')

Вывод:

list [17 15 23 40 41 34 37 22 41 28]
minimum 15
maximum 17
→ Ссылка