Как проверить, что последовательность строго монотонна или есть одна поворотная точка, где обе стороны строго монотонны? - PullRequest
0 голосов
/ 12 июля 2020

Ввод

l1=[1,3,5,6,7]
l2=[1,2,2,3,4]
l3=[5,4,3,2,1]
l4=[5,5,3,2,1]
l5=[1,2,3,4.1,3,2]
l6=[3,2,1,0.4,1,2,3]
l7=[1,2,10,4,8,9,2]
l8=[1,2,3,4,4,3,2,1]

Примечание: значение в последовательности является плавающим.

Ожидаемое

  • Напишите функцию find_targeted_seq, которая возвращает последовательность, является ли она строго монотонной или есть одна поворотная точка, в которой обе стороны строго монотонны. Например, ожидаются l1, l3, l5, l6.

Попробуйте

1 Ответ

0 голосов
/ 12 июля 2020

Не существует специальной c функции для достижения этого, однако мы можем сделать это с помощью diff и sign

l=[l1...l8]
[pd.Series(x).diff().ne(0).all() & (np.sign(pd.Series(x).diff().fillna(1)).diff().ne(0).sum()<=3) for x in l ]
[True, False, True, False, True, True, False, False]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...