median_absolute_deviation

astropy.stats.median_absolute_deviation(data, axis=None, func=None, ignore_nan=False)[source]

Calculate the median absolute deviation (MAD).

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

Parameters:
datanumpy:array_like

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

axispython:None, python:int, or python:tuple of python:int, optional

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

funcpython:callable(), optional

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

ignore_nanbool

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:
madpython:float 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