python - 如何在 NumPy 数组中查找连续元素的组

标签 python numpy

我必须对 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/

相关文章:

python - Python 中的二阶导数 - scipy/numpy/pandas

python - 在 numpy 中计算 L2 内积?

python - 有没有办法将字典类型的列添加到pyspark中的spark数据帧?

python - 如何从python中的文本文件中获取子字符串?

python - 限制 Bottle 中上传文件的大小

python - 总结数组内所有不同形状的 numpy 子数组的所有值

python - 在渲染模板中将变量从 python (flask) 传递到 HTML?

python - 如何使 tkinter 窗口在 i3 窗口管理器中 float

python - 当 numpy 数组的大小超过系统内存时,如何在笔记本电脑上创建它?

python - numpy:如何向现有结构化数组添加列?