astro py:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- Astropy v1.1.1 »
- N-dimensional datasets (`astropy.nddata`) »
- astropy.nddata.utils »
- block_reduce

# block_reduce

`astropy.nddata.utils.``block_reduce`(data, block_size, func=<function sum>)

  Downsample a data array by applying a function to local blocks.

  If `data` is not perfectly divisible by `block_size` along a given axis then the data will be trimmed (from the end) along that axis.

  Parameters:

  data : array_like

  > The data to be resampled.

  block_size : int or array_like (int)

  > The integer block size along each axis. If `block_size` is a scalar and `data` has more than one dimension, then `block_size` will be used for for every axis.

  func : callable, optional

  > The method to use to downsample the data. Must be a callable that takes in a `ndarray` along with an `axis` keyword, which defines the axis along which the function is applied. The default is `sum`, which provides block summation (and conserves the data sum).

  Returns:

  output : array-like

  > The resampled data.

  Examples

      >>> import numpy as np
      >>> from astropy.nddata.utils import block_reduce
      >>> data = np.arange(16).reshape(4, 4)
      >>> block_reduce(data, 2)
      array([[10, 18],
             [42, 50]])

      >>> block_reduce(data, 2, func=np.mean)
      array([[  2.5,   4.5],
             [ 10.5,  12.5]])