Tuesday, 15 June 2010

numpy - group similar entries python -



numpy - group similar entries python -

this question has reply here:

grouping / clustering numbers in python 3 answers

i have numpy array:

array([ 2.86656000e+09, 2.86688000e+09, 2.86708000e+09, 2.86860000e+09, 2.86884000e+09, 2.86908000e+09, 2.86920000e+09, 2.87024000e+09, 2.87040000e+09, 2.87056000e+09, 2.87076000e+09, 2.87108000e+09, 2.87120000e+09, 2.87152000e+09, 2.87260000e+09, 2.87272000e+09, 2.87280000e+09, 2.87448000e+09, 2.87464000e+09, 2.87476000e+09, 2.87484000e+09])

what best way grouping similar values (difference not bigger 1000000 example)? answers!!

as alternative solution linked in comments, should work:

in [1]: import numpy np in [2]: arr = np.array([ 2.86656000e+09, 2.86688000e+09, 2.86708000e+09, ...: 2.86860000e+09, 2.86884000e+09, 2.86908000e+09, ...: 2.86920000e+09, 2.87024000e+09, 2.87040000e+09, ...: 2.87056000e+09, 2.87076000e+09, 2.87108000e+09, ...: 2.87120000e+09, 2.87152000e+09, 2.87260000e+09, ...: 2.87272000e+09, 2.87280000e+09, 2.87448000e+09, ...: 2.87464000e+09, 2.87476000e+09, 2.87484000e+09]) in [3]: np.split(arr, np.where(np.diff(arr) > 1000000)[0] + 1) out[3]: [array([ 2.86656000e+09, 2.86688000e+09, 2.86708000e+09]), array([ 2.86860000e+09, 2.86884000e+09, 2.86908000e+09, 2.86920000e+09]), array([ 2.87024000e+09, 2.87040000e+09, 2.87056000e+09, 2.87076000e+09, 2.87108000e+09, 2.87120000e+09, 2.87152000e+09]), array([ 2.87260000e+09, 2.87272000e+09, 2.87280000e+09]), array([ 2.87448000e+09, 2.87464000e+09, 2.87476000e+09, 2.87484000e+09])]

python numpy

No comments:

Post a Comment