python中从布尔向量获取间隔的最快方法
我有一个布尔向量python中从布尔向量获取间隔的最快方法,python,numpy,Python,Numpy,我有一个布尔向量 v=[True,True,True,False,True,True,False,False,True,True,False,True] 我想得到包含True值的间隔 #intervals in the format: [start,stop] [[0,2], [4,5], [8,9], [11,11]] python中是否有任何常用函数(比如在numpy中)可以做到这一点。不一定是最快的,但可能是最短的。新的prepend和append关键字到np.diff对于此类任
v=[True,True,True,False,True,True,False,False,True,True,False,True]
我想得到包含True
值的间隔
#intervals in the format: [start,stop]
[[0,2],
[4,5],
[8,9],
[11,11]]
python中是否有任何常用函数(比如在
numpy
中)可以做到这一点。不一定是最快的,但可能是最短的。新的prepend
和append
关键字到np.diff
对于此类任务非常方便
np.flatnonzero(np.diff(v, prepend=False, append=False)).reshape(-1, 2) - (0, 1)
您的索引甚至与副本相似。我想知道这是否是我们认为是随机分组的事情。这是巧合。如果有人问过这个问题,我首先环顾四周。我没有找到那个(重复的)。无论如何,我的问题的不同之处在于,我想知道最快的方法。我的建议是在这里得到答案,并将其与另一个问题中的答案进行比较。