Нахождение пиков на границах данных - PullRequest
2 голосов
/ 02 июля 2019

Я хотел бы использовать scipy.signal.find_peaks для поиска пиков в некоторых 2D-данных, но функция по умолчанию игнорирует все краевые пики (пики, которые возникают на левой или правой границе массива). Есть ли способ включить краевые пики в результаты?

Например, я хотел бы этот код:

find_peaks([5,4,3,3,2,3])

для производства

[0,5]

но вместо этого он производит

[]

1 Ответ

0 голосов
/ 02 июля 2019

В зависимости от более детального использования find_peaks, я бы предложил повторить данные в начале и конце массива: например,

peak_info = find_peaks([4,5,4,3,3,2,3,2])
# correct for additional initial element in auxiliary input array
peaks = peak_info[0] - 1

Если, например, для find_peaks задан минимально необходимый параметр пика width, возможно, имеет смысл повторить обратный массив как в начале, так и в конце.

find_peaks обычно идентифицирует пики, только если есть более низкие значения данных слева и справа. Следовательно, он также не идентифицирует пики в [5,5,4,3,3,2,3,3] (т.е. повторяет первый и последний элементы массива соответственно). Повторение второго и последнего элементов в начале и в конце массива или вставка более низких значений в начале и конце позволят идентифицировать такие граничные точки как пики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...