Предположим, у меня есть массив в numpy
, который гласит:
arr = np.array([[1,2,7,6],[2,3,2,1],[10,8,1,3],[9,7,4,2], [np.nan, np.nan, np.nan, np.nan]])
Я хотел бы извлечь все записи, где окружающие записи превосходят.Этакий «локальный минимум» такой, что я получаю следующие индексы:
indices = [(0,0), [(2,2), (2,3)]]
Обратите внимание, что вторым элементом в списке является список кортежей.Я хотел бы, чтобы такой алгоритм мог идентифицировать локальные минимальные области, а также локальные минимальные точки.Значения NAN следует просто игнорировать и рассматривать как «границу».
Я попытался поиграться с np.gradient
, потому что я думал, что это должно позволить мне извлечь части, где производная равна 0. Но я не мог действительно добраться до точки, где это будет работать.
Существуют ли какие-либо библиотеки или готовые функциональные возможности для достижения этой цели?
Спасибо