Как определить нижний пик на бимодальной гистограмме без сглаживания? - PullRequest
0 голосов
/ 18 октября 2019

Легко определить самый высокий пик с правой стороны бимодального распределения. Мне нужно определить левое (всегда также меньшее в моих данных) пиковое значение в следующем бимодальном распределении: https://drive.google.com/open?id=1n-Kp5loJze-L3vNgq7_3qFrmI-JiE20K

Здесь 1 - левый пик, а 2 - правый пик. 1 всегда меньше, чем 2.

Используя scipy.signal.argrelmax, я смог найти все относительные пики, но мне нужно извлечь конкретно левый пик в моих данных (отмечен 1).

Значения только двух пиков, отмеченных цифрами 1 и 2 на прилагаемом рисунке, игнорируют все остальные пики, которые определены. пик 2 справа легко извлечь, но я также хочу извлечь пик 1.

1 Ответ

0 голосов
/ 18 октября 2019

что-то в этом направлении может работать, если предположить, что значения x-bin и y-count равны np.arrays:

import numpy.polynomial.polynomial как poly из scipy.signal import argrelextrema

c = poly.polyfit(x,y,4)
fit = poly.polyval(x,c)
i = argrelextrema(fit, np.less)

это даст вам точку разделения (приблизительно) между бимодальным распределением

, тогда вы можете сделать что-то вроде:

p1 = np.max(y[:i])
p2 = np.max(y[i:])

иногда квартика не соответствует желаемомутак что я понимаю, что это может быть сложно реализовать, но, возможно, что-то в этом роде, или даже триггер?

Надеюсь, это поможет

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