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

时间:2013-02-28 11:59:17

标签: python arrays numpy

我使用Python numpy

我有一个numpy数组b

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

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

这个例子:

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

有人可以建议,如何获得out_index

1 个答案:

答案 0 :(得分: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]]