numpy:搜索数组中的第一个和最后一个索引

Olg*_*lga 2 python arrays numpy

我用Python numpy.

我有一个numpy数组b:

b = np.array([True,True,True,False,False,True,True,False,True,True,True,True,False])
Run Code Online (Sandbox Code Playgroud)

我需要找到b相等的第一个和最后一个索引True.

这个例子:

out_index: [0,2]
           [5,6]
           [8,11]
Run Code Online (Sandbox Code Playgroud)

有人可以建议,我该怎么办out_index

HYR*_*YRY 6

b = np.array([True,True,True,False,False,True,True,False,True,True,True,True,False])
idx = np.argwhere(np.diff(np.r_[False, b, False])).reshape(-1, 2)
idx[:, 1] -= 1
print idx
Run Code Online (Sandbox Code Playgroud)

输出:

[[ 0  2]
 [ 5  6]
 [ 8 11]]
Run Code Online (Sandbox Code Playgroud)