2015-06-03 25 views
0

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

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

有人能给出更多的“外行人讲”如何使用groupby的解释?本身不需要示例代码,只是对文档的更全面的解释。

+0

请参阅[这个问题](http://stackoverflow.com/questions/4651683/numpy-grouping-using-itertools-groupby-performance)。 –

回答

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)) 

我知道这并不会给你组的深入浅出的解释通过匹配(组连续项一些标准......这种类型的应用程序会有点痛苦)