我必须对 NumPy 数组中的连续元素进行聚类。考虑以下示例
a = [ 0, 47, 48, 49, 50, 97, 98, 99]
输出应该是如下的元组列表
[(0), (47, 48, 49, 50), (97, 98, 99)]
这里的区别只是元素之间的一个。如果差异也可以指定为限制或硬编码数字,那就太好了。
最佳答案
def consecutive(data, stepsize=1):
return np.split(data, np.where(np.diff(data) != stepsize)[0]+1)
a = np.array([0, 47, 48, 49, 50, 97, 98, 99])
consecutive(a)
产量
[array([0]), array([47, 48, 49, 50]), array([97, 98, 99])]
关于python - 如何在 NumPy 数组中查找连续元素的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352684/