Skip to main content
`Ctrl`+`K`
scipy.ndimage.

# histogram

scipy.ndimage.histogram(input, min, max, bins, labels=None, index=None)

  Calculate the histogram of the values of an array, optionally at labels.

  Histogram calculates the frequency of values in an array within bins determined by min, max, and bins. The labels and index keywords can limit the scope of the histogram to specified sub-regions within the array.

  Parameters:
    input array_like

      Data for which to calculate histogram.

    min, max int

      Minimum and maximum values of range of histogram bins.

    bins int

      Number of bins.

    labels array_like, optional

      Labels for objects in input. If not None, must be same shape as input.

    index int or sequence of ints, optional

      Label or labels for which to calculate histogram. If None, all values where label is greater than zero are used

  Returns:
    hist ndarray

      Histogram counts.

  Notes

  Array API Standard Support

  `histogram` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ✅
  PyTorch | ✅ | ⛔
  JAX | ⚠️ no JIT | ⛔
  Dask | ⚠️ computes graph | n/a

  See Support for the array API standard for more information.

  Examples

      >>> import numpy as np
      >>> a = np.array([[ 0.    ,  0.2146,  0.5962,  0.    ],
      ...               [ 0.    ,  0.7778,  0.    ,  0.    ],
      ...               [ 0.    ,  0.    ,  0.    ,  0.    ],
      ...               [ 0.    ,  0.    ,  0.7181,  0.2787],
      ...               [ 0.    ,  0.    ,  0.6573,  0.3094]])
      >>> from scipy import ndimage
      >>> ndimage.histogram(a, 0, 1, 10)
      array([13,  0,  2,  1,  0,  1,  1,  2,  0,  0])

  With labels and no indices, non-zero elements are counted:

      >>> lbl, nlbl = ndimage.label(a)
      >>> ndimage.histogram(a, 0, 1, 10, lbl)
      array([0, 0, 2, 1, 0, 1, 1, 2, 0, 0])

  Indices can be used to count only certain objects:

      >>> ndimage.histogram(a, 0, 1, 10, lbl, 2)
      array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0])