numpy: split 1D array of chunks separated by nans into a list of the chunks

后端 未结 2 1729
广开言路
广开言路 2020-12-14 13:13

I have a numpy array with only some values being valid and the rest being nan. example:

[nan,nan, 1 , 2 , 3 , nan, nan, 10, 11 , nan, nan, nan, 23, 1, nan,          


        
2条回答
  •  余生分开走
    2020-12-14 13:21

    I'd use itertools.groupby -- It might be slightly faster:

    from numpy import NaN as nan
    import numpy as np
    a = np.array([nan,nan, 1 , 2 , 3 , nan, nan, 10, 11 , nan, nan, nan, 23, 1, nan, 7, 8])
    from itertools import groupby
    result = [list(v) for k,v in groupby(a,np.isfinite) if k]
    print result #[[1.0, 2.0, 3.0], [10.0, 11.0], [23.0, 1.0], [7.0, 8.0]]
    

提交回复
热议问题