早上好,
我有一个像这样的numpy数组:
    [0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0]

我想找到1个分开的对的数量。

三个(或更多个)连续的1也算作一对,即:在此示例中,返回的数字应为3。

实现此目的的最佳技术是什么?

非常感谢!

最佳答案

使用itertools.groupby

k保持基于唯一键0/1的列表(下面的列表),g保持唯一键k的对应组迭代器

import itertools
target = 1
lst = [0,1,1,0,1,1,1,0,0,1,0,1,1,0]
pair_count = 0

for k,g in itertools.groupby(lst):
    if k==target and len(list(g))>1: # match target and more than 1 count as pair
        pair_count += 1
# pair_count = 3

关于python - 查找数组中分离的对数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40959446/

10-12 16:52