2013-02-28 2 views
2

Я использую Python с numpy.numpy: поиск первого и последнего индекса в массиве

У меня есть массив Numpy b:

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

Мне нужно найти первый и последний индекс, где b равно True.

Для этого exsample:

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

Может кто-то пожалуйста, предложить, как получить out_index?

ответ

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 

выход:

[[ 0 2] 
[ 5 6] 
[ 8 11]] 
Смежные вопросы