def get_minima(array):
sdiff = np.diff(np.sign(np.diff(array)))
rising_1 = (sdiff == 2)
rising_2 = (sdiff[:-1] == 1) & (sdiff[1:] == 1)
rising_all = rising_1
rising_all[1:] = rising_all[1:] | rising_2
min_ind = np.where(rising_all)[0] + 1
minima = list(zip(min_ind, array[min_ind]))
return sorted(minima, key=lambda x: x[1])
, запустив этот код с массивом данных, который у меня есть, он выдает:
[(59, 7.958373616052042e-10),
(69, 6.5364637051479655e-09),
(105, 1.0748381102806489e-08),
(88, 2.953895857338913e-07),
(27, 9.083111768048306e-07)]
, что здорово - это все минимумы в моем наборе данных. Но мне нужно хранить только минимум - который является точкой (59, 7.958373616052042e-10) в данном конкретном примере. Я не могу понять, как это сделать. Я попробовал кое-что с использованием np.amin и проведением логического сравнения, но я сильно запутался с нотацией и синтаксисом, так как теперь это массив списков, и я никогда не работал с этим раньше.
Благодарю за любую помощь!