在Python中获取数组中连续数字的开始索引和结束索引

时间:2020-08-21 13:14:27

标签: python arrays list

我希望python给我一个数组列表的列表。每个列表都应该告诉数组中的起始索引和结束索引之间的数字是连续的。

例如,如果我有一个数组

d=np.array([0,1,2,4,5,6,9,10,11])

我想要一个列表

([0,2],[3,5],[6,8])

第一个元素[0,2]表示数组d中从0到2的元素是连续的。我考虑过使用递归函数,但感觉不像python那样。

1 个答案:

答案 0 :(得分:1)

如果由于某种原因您真的不想使用简单的循环:

start_end = np.diff((np.diff(d) == 1) + 0, prepend=0, append=0)
# Look for where it flips from 1 to 0, or 0 to 1.
start_idx = np.where(flip == 1)
end_idx = np.where(flip == -1)