我有一个像这样的 numpy 数组,[1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]
我想找到最长的连续序列的长度,即 1s 或 -1s。在示例中,它应该是 3
问问题
5940 次
2 回答
18
在纯 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
于 2013-05-24T10:53:23.300 回答
6
>>> 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
于 2013-05-24T11:39:45.357 回答