LINUX.ORG.RU

Как найти на графике все интервалы возрастания и убывания с помощью Python?

 ,


0

1

Есть «график» в виде ряда х | y, где x - время, а y - некоторые значения. Как с помощью Python найти все участки возрастания и убывания? Как найти все непрерывные участки, в которых по отношению к конкретной точке все точки имеют значение меньше/больше заданной точки? Есть какие-то готовые решения или хотя бы библиотеки, облегчающие задачу?

★★★★★
Ответ на: комментарий от tyakos

Слышал. Но это же не функция, описываемая математической формулой, а набор относительно случайных данных

Тупо перебором?

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Qwentor

Проходишь по массиву значений, если предыдущее значение меньше текущего, это возрастание, если больше, убывание. Гениальный план, правда?

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Гениальнее некуда, спасибо)

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от tyakos

численная производная

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

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Qwentor

неохота решать задачу прямым топорным методом

а в чем проблема с прямым топорным методом?

MyTrooName ★★★★★
()
>>> import numpy as np
>>> np.diff([1,2,3,2,1])
array([ 1,  1, -1, -1])
anonymous
()

а под участками возрастания-убывания ты имееш ввиду просто участки роста значений или всетаки выбросы (аномальный рост значений)?

если последнее, то тут сильно зависит от специфики числового ряда конкретно у тебя, но в общем случае для меня самым эффективным решением оказалось поиск отклонений по скользящей тремиане (минимальный размер окна всеравно зависит от специфики, для общего случая есть несколько оптимальных значений тоже) с обратной связью - причем обратная связь влияет не только на пересчет самой тримианы при извлечении выброса, но и на размер окна.

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

genryRar ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.