# pygram11.fix1d#

pygram11.fix1d(x, bins=10, range=None, weights=None, density=False, flow=False, cons_var=False)[source]#

Histogram data with fixed (uniform) bin widths.

Parameters
• x (numpy.ndarray) – Data to histogram.

• bins (int) – The number of bins.

• range ((float, float), optional) – The minimum and maximum of the histogram axis. If None, min and max of x will be used.

• weights (numpy.ndarray, optional) – The weights for each element of x. If weights are absent, the second return type will be None.

• density (bool) – Normalize histogram counts as value of PDF such that the integral over the range is unity.

• flow (bool) – Include under/overflow in the first/last bins.

• cons_var (bool) – If True, conserve the variance rather than return the standard error (square root of the variance).

Raises
• ValueError – If x and weights have incompatible shapes.

• TypeError – If x or weights are unsupported types

Returns

• numpy.ndarray – The resulting histogram bin counts.

• numpy.ndarray, optional – The standard error of each bin count, $$\sqrt{\sum_i w_i^2}$$. The return is None if weights are not used. If cons_var is True, the variances are returned.

Examples

A histogram of x with 20 bins between 0 and 100:

>>> rng = np.random.default_rng(123)
>>> x = rng.uniform(0, 100, size=(100,))
>>> h, __ = fix1d(x, bins=20, range=(0, 100))


When weights are absent the second return is None. The same data, now histogrammed with weights and over/underflow included:

>>> rng = np.random.default_rng(123)
>>> x = rng.uniform(0, 100, size=(100,))
>>> w = rng.uniform(0.1, 0.9, x.shape[0])
>>> h, stderr = fix1d(x, bins=20, range=(0, 100), weights=w, flow=True)