Reputation: 1455
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
?
Upvotes: 3
Views: 1290
Reputation: 97291
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]]
Upvotes: 6