gpt4 book ai didi

python - 将 bool 索引转换为运行的开始/结束对

转载 作者:太空狗 更新时间:2023-10-30 01:02:11 25 4
gpt4 key购买 nike

是否有一个 numpy 函数可以转换如下内容:

[0, 1, 0, 1, 1, 1, 0, 1, 1]

到连续范围的开始/结束对数组,如:

[[1, 2],
[3, 6],
[7, 9]]

最佳答案

不幸的是我没有安装 numpy,但这个逻辑应该为你完成。

import itertools
x = [0, 1, 0, 1, 1, 1, 0, 1, 1]

# get the indices where 1->0 and 0->1
diff = np.diff(x)
diff_index = diff.nonzero(x)

# pair up the ranges using itertools
def pairwise(iterable):
a, b = itertools.tee(iterable)
next(b, None)
return itertools.izip(a, b)

ranges = pairwise(x)

文档:

numpy diff
numpy nonzero itertools grouper

关于python - 将 bool 索引转换为运行的开始/结束对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com