Olga Olga - 3 months ago 18
Python Question

numpy: search of the first and last index in an array

I use Python with

numpy
.

I have a numpy array
b
:

b = np.array([True,True,True,False,False,True,True,False,True,True,True,True,False])


I need to find the first and last index where
b
is equal
True
.

For this exsample:

out_index: [0,2]
[5,6]
[8,11]


Can someone please suggest, how do I get
out_index
?

Answer
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

output:

[[ 0  2]
 [ 5  6]
 [ 8 11]]
Comments