Python,Numpy-尝试根据条件拆分数组

Python,Numpy-尝试根据条件拆分数组,python,numpy,scipy,Python,Numpy,Scipy,我试图在数组中查找簇(即数组中[n+1]和[n]之间的差值小于某个值的组)。我有一个numpy数组,它是一个时间戳序列。我可以使用numpy.diff()找到时间戳之间的差异,但是我很难在不循环数组的情况下确定集群。举例来说: t = t = np.array([ 147, 5729, 5794, 5806, 6798, 8756, 8772, 8776, 9976]) dt = np.diff(t) dt = array([5582, 65, 12, 992, 1958, 16

我试图在数组中查找簇(即数组中[n+1]和[n]之间的差值小于某个值的组)。我有一个numpy数组,它是一个时间戳序列。我可以使用numpy.diff()找到时间戳之间的差异,但是我很难在不循环数组的情况下确定集群。举例来说:

t = t = np.array([ 147, 5729, 5794, 5806, 6798, 8756, 8772, 8776, 9976])
dt  = np.diff(t)
dt = array([5582,   65,   12,  992, 1958,   16,    4, 1200])
如果我的簇条件是dt<100t[1],t[2]和t[3]将是一个簇,t[5],t[6]和t[7]将是另一个簇。我已经尝试过使用numpy.where(),但在正确调整条件以分离集群方面没有成功

cluster1 = np.array([5729, 5794, 5806])
cluster2 = np.array([8756, 8772, 8776])
或者类似的东西

感谢您的帮助

import numpy as np

t = np.array([ 147, 5729, 5794, 5806, 6798, 8756, 8772, 8776, 9976])
dt  = np.diff(t)
pos = np.where(dt > 100)[0] + 1
print np.split(t, pos)
输出为:

[array([147]), 
array([5729, 5794, 5806]), 
array([6798]), 
array([8756, 8772, 8776]), 
array([9976])]