lib5c.util.grouping module

Module for constructing groups of points with particular properties.

lib5c.util.grouping.group_obs_by_exp(obs, exp, num_groups=100, group_fractional_tolerance=0.1, log=True, min_group_count=2, exclude_offdiagonals=5)[source]

Groups observed points according to their expected values.

Parameters
  • obs (np.ndarray or dict of np.ndarray) – Vector, matrix, or counts dict of observed values.

  • exp (np.ndarray or dict of np.ndarray) – Vector, matrix, or counts dict of expected values.

  • num_groups (int) – The number of groups to make.

  • group_fractional_tolerance (float) – The width of each group, specified as a fractional tolerance in the expected value.

  • log (bool) – Pass True to space the groups out logarithmically.

  • min_group_count (int) – Discard groups that have fewer than this many values in them.

  • exclude_offdiagonals (int) – If obs and exp are not already vectors, discard this many off-diagonals from their square matrices before flattening. Pass 0 to exclude only the exact diagonal, and pass -1 to exclude nothing.

Returns

The first array contains the expected values chosen as the centers of the groups. The list contains each group as an array of observed values.

Return type

np.ndarray, list of np.ndarray