识别NumPy数组中的连续值组

时间:2015-06-03 17:24:19

标签: python arrays numpy

我有一个NumPy值数组,我需要识别数组中连续值的组。

我试过写" for"循环来做到这一点,但我遇到了很多问题。所以我在itertools中查看了groupby的文档。我之前从未使用过这个,而且我对文档感到有点困惑,所以我来这里。

有人可以给更多的"外行说话"解释如何使用groupby?我本身并不需要示例代码,只需要对文档进行更全面的解释。

1 个答案:

答案 0 :(得分:1)

一个好的答案是使用生成器对它进行分组(可能不是最快的方法)

def groupings(a):
     g = []
     for val in a:
         if not g:
             g.append(val)
         elif abs(g[-1] - val) <= 1.00001:
             g.append(val)
         else:
             yield g
             g = []

print list(groupings(my_numpy_array))

我知道这并没有给你一个外行解释分组(连续的项目符合某些标准......对于这种类型的应用来说会有些痛苦)