median_absolute_deviation#

astropy.stats.median_absolute_deviation(data: ArrayLike, axis: int | tuple[int, ...] | None = None, func: Callable | None = None, ignore_nan: bool | None = False) float | NDArray[source]#

Calculate the median absolute deviation (MAD).

The MAD is defined as median(abs(a - median(a))).

Parameters:
dataarray_like

Input array or object that can be converted to an array.

axisNone, int, or tuple of int, optional

The axis or axes along which the MADs are computed. The default (None) is to compute the MAD of the flattened array.

funccallable(), optional

The function used to compute the median. Defaults to numpy.ma.median for masked arrays, otherwise to numpy.median.

ignore_nanbool, optional

Ignore NaN values (treat them as if they are not in the array) when computing the median. This will use numpy.ma.median if axis is specified, or numpy.nanmedian if axis==None and numpy’s version is >1.10 because nanmedian is slightly faster in this case.

Returns:
madfloat or ndarray

The median absolute deviation of the input array. If axis is None then a scalar will be returned, otherwise a ndarray will be returned.

See also

mad_std

Examples

Generate random variates from a Gaussian distribution and return the median absolute deviation for that distribution:

>>> import numpy as np
>>> from astropy.stats import median_absolute_deviation
>>> rand = np.random.default_rng(12345)
>>> from numpy.random import randn
>>> mad = median_absolute_deviation(rand.standard_normal(1000))
>>> print(mad)    
0.6829504282771885