计算数组中的连续相等值

时间:2019-02-08 17:54:59

标签: python arrays numpy

说我有以下numpy数组:

a = np.array([1,5,5,2,3,6,5,2,5,5,5])

我正在尝试提出一种numpy解决方案,以计算给定值连续出现的次数。因此,例如对于数字5,我想得到:

array([2,1,3])

它在数组中连续出现3次,每次都有指定的重复次数。

2 个答案:

答案 0 :(得分:3)

这是根据this answer改编而成的一个选项:

VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1

答案 1 :(得分:1)

如果您对list没问题,那么可以使用groupby

from itertools import groupby
a=[1,5,5,2,3,6,5,2,5,5,5]
[len(list(v)) for k,v in groupby(a) if k==5]

输出

[2, 1, 3]