相关疑难解决方法(0)

计算在numpy数组中长度变化的值的连续出现次数

假设我在numpy数组中有一堆数字,我根据返回布尔数组的条件测试它们:

np.random.seed(3456)
a = np.random.rand(8)
condition = a>0.5
Run Code Online (Sandbox Code Playgroud)

有了这个布尔数组,我想计算连续出现的True的所有长度.例如,如果我有,[True,True,True,False,False,True,True,False,True]我想要回来[3,2,1].

我可以使用此代码执行此操作:

length,count = [],0
for i in range(len(condition)):

    if condition[i]==True:
        count += 1
    elif condition[i]==False and count>0:
        length.append(count)
        count = 0

    if i==len(condition)-1 and count>0:
        length.append(count)

    print length
Run Code Online (Sandbox Code Playgroud)

但是,是否有任何已经实现的功能或python,numpy,scipy等函数计算给定输入的列表或数组中连续出现的长度?

python arrays numpy

10
推荐指数
2
解决办法
8165
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1