У меня есть массив numpy, подобный этому [1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]
Я бы хотел найти длину самой длинной последовательной серии из 1 или -1. В этом примере это должно быть 3
Найти длину самой длинной последовательной серии чисел
Ответ 1
В чистом Python
>>> from itertools import groupby
>>> L = [1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]
>>> max(sum(1 for i in g) for k,g in groupby(L))
3
Ответ 2
Как и ответ @AlexMartelli
>>> import numpy as np
>>> nums = np.array([1,1,1,-1-1,1,-1,1,1,-1,-1,-1,1,-1])
>>> run_ends = np.where(np.diff(nums))[0] + 1
>>> np.diff(np.hstack((0, run_ends, nums.size))).max()
3