def groupprops(locs, callback=None):
try:
locs = locs[locs.dark != -1]
except AttributeError:
pass
group_ids = _np.unique(locs.group)
n = len(group_ids)
n_cols = len(locs.dtype)
names = ['group', 'n_events'] + list(_itertools.chain(*[(_ + '_mean', _ + '_std') for _ in locs.dtype.names]))
formats = ['i4', 'i4'] + 2 * n_cols * ['f4']
groups = _np.recarray(n, formats=formats, names=names)
if callback is not None:
callback(0)
for i, group_id in enumerate(_tqdm(group_ids, desc='Calculating group statistics', unit='Groups')):
group_locs = locs[locs.group == group_id]
groups['group'][i] = group_id
groups['n_events'][i] = len(group_locs)
for name in locs.dtype.names:
groups[name + '_mean'][i] = _np.mean(group_locs[name])
groups[name + '_std'][i] = _np.std(group_locs[name])
if callback is not None:
callback(i+1)
return groups
评论列表
文章目录