I cannot speak for the scipy stats.describe people, but the general answer is this: mean, variance, and even kurtosis can be computed in one or two O(n) passes through the data, while median requires an O(n*log(n)) sort.

Answer from Terry Jan Reedy on Stack Overflow
🌐
SciPy
docs.scipy.org › doc › scipy-0.8.x › reference › generated › scipy.stats.median.html
scipy.stats.median — SciPy v0.8 Reference Guide (DRAFT)
September 2, 2010 - scipy.stats.median(a, axis=0)¶ · Returns the median of the passed array along the given axis. If there is an even number of entries, the mean of the 2 middle values is returned. scipy.stats.cmedian · scipy.stats.mode · Show Source · Edit page · Enter search terms or a module, class or ...
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.stats.median_test.html
median_test — SciPy v1.17.0 Manual
The “grand median” of all the data is computed, and a contingency table is formed by classifying the values in each sample as being above or below the grand median. The contingency table, along with correction and lambda_, are passed to scipy.stats.chi2_contingency to compute the test statistic ...
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.stats.median_abs_deviation.html
median_abs_deviation — SciPy v1.17.0 Manual
The median absolute deviation (MAD, [1]) computes the median over the absolute deviations from the median. It is a measure of dispersion similar to the standard deviation but more robust to outliers [2]. The MAD of an empty array is np.nan. Added in version 1.5.0. ... Input array or object that can be converted to an array. ... If an int, the axis of the input along which to compute the statistic.
🌐
SciPy
docs.scipy.org › doc › scipy-0.7.x › reference › generated › scipy.stats.median.html
scipy.stats.median — SciPy v0.7 Reference Guide (DRAFT)
scipy.stats.median(a, axis=0)¶ · Returns the median of the passed array along the given axis. If there is an even number of entries, the mean of the 2 middle values is returned. scipy.stats.cmedian · scipy.stats.mode · Show Source · Edit page · index ·
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.ndimage.median.html
median — SciPy v1.17.0 Manual
Array_like of values. For each region specified by labels, the median value of input over the region is computed.
🌐
SciPy
docs.scipy.org › doc › scipy-0.19.1 › reference › generated › scipy.stats.median_test.html
scipy.stats.median_test — SciPy v0.19.1 Reference Guide
The following code applies Mood’s median test to these samples. >>> g1 = [10, 14, 14, 18, 20, 22, 24, 25, 31, 31, 32, 39, 43, 43, 48, 49] >>> g2 = [28, 30, 31, 33, 34, 35, 36, 40, 44, 55, 57, 61, 91, 92, 99] >>> g3 = [0, 3, 9, 22, 23, 25, 25, 33, 34, 34, 40, 45, 46, 48, 62, 67, 84] >>> from scipy.stats import median_test >>> stat, p, med, tbl = median_test(g1, g2, g3)
🌐
SciPy
docs.scipy.org › doc › scipy-1.16.1 › reference › generated › scipy.stats.Normal.median.html
median — SciPy v1.16.1 Manual
If a continuous random variable \(X\) has probability \(0.5\) of taking on a value less than \(m\), then \(m\) is the median.
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.stats.mstats.median_cihs.html
median_cihs — SciPy v1.16.2 Manual
scipy.stats.mstats.median_cihs(data, alpha=0.05, axis=None)[source]# Computes the alpha-level confidence interval for the median of the data. Uses the Hettmasperger-Sheather method. Parameters: dataarray_like · Input data. Masked values are discarded. The input should be 1D only, or axis should ...
Find elsewhere
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.stats.rv_continuous.median.html
median — SciPy v1.16.2 Manual
scipy.stats.rv_continuous. rv_continuous.median(*args, **kwds)[source]# Median of the distribution. Parameters: arg1, arg2, arg3,…array_like · The shape parameter(s) for the distribution (see docstring of the instance object for more information) locarray_like, optional ·
🌐
SciPy
docs.scipy.org › doc › scipy › reference › stats.html
Statistical functions (scipy.stats) — SciPy v1.17.0 Manual
They can also be interpreted or ... mean or median of differences between paired observations). These tests are often used to assess whether there is a relationship (e.g. linear) between paired observations in multiple samples or among the coordinates of multivariate observations.
🌐
SciPy
docs.scipy.org › doc › scipy › reference › generated › scipy.stats.median_abs_deviation.html
median_abs_deviation — SciPy v1.16.1 Manual
December 31, 2020 - scipy.stats.median_abs_deviation(x, axis=0, center=<function median>, scale=1.0, nan_policy='propagate')[source]# Compute the median absolute deviation of the data along the given axis. The median absolute deviation (MAD, [1]) computes the median over the absolute deviations from the median.
🌐
SciPy
scipy.github.io › devdocs › reference › generated › scipy.stats.rv_discrete.median.html
median — SciPy v1.18.0.dev Manual
scipy.stats.rv_discrete. rv_discrete.median(*args, **kwds)[source]# Median of the distribution. Parameters: arg1, arg2, arg3,…array_like · The shape parameter(s) for the distribution (see docstring of the instance object for more information) locarray_like, optional ·
🌐
SciPy
docs.scipy.org › doc › scipy-1.8.1 › reference › generated › scipy.stats.median_absolute_deviation.html
scipy.stats.median_absolute_deviation — SciPy v1.8.1 Manual
When comparing the behavior of median_absolute_deviation with np.std, the latter is affected when we change a single value of an array to have an outlier value while the MAD hardly changes: >>> from scipy import stats >>> x = stats.norm.rvs(size=100, scale=1, random_state=123456) >>> x.std() 0.9973906394005013 >>> stats.median_absolute_deviation(x) 1.2280762773108278 >>> x[0] = 345.6 >>> x.std() 34.42304872314415 >>> stats.median_absolute_deviation(x) 1.2340335571164334
🌐
SciPy
docs.scipy.org › doc › scipy-1.15.2 › reference › generated › scipy.stats.Uniform.median.html
median — SciPy v1.15.2 Manual
If a continuous random variable \(X\) has probability \(0.5\) of taking on a value less than \(m\), then \(m\) is the median.
🌐
SciPy
docs.scipy.org › doc › scipy-1.7.0 › reference › reference › generated › scipy.stats.median_absolute_deviation.html
scipy.stats.median_absolute_deviation — SciPy v1.7.0 Manual
When comparing the behavior of median_absolute_deviation with np.std, the latter is affected when we change a single value of an array to have an outlier value while the MAD hardly changes: >>> from scipy import stats >>> x = stats.norm.rvs(size=100, scale=1, random_state=123456) >>> x.std() 0.9973906394005013 >>> stats.median_absolute_deviation(x) 1.2280762773108278 >>> x[0] = 345.6 >>> x.std() 34.42304872314415 >>> stats.median_absolute_deviation(x) 1.2340335571164334
🌐
GeeksforGeeks
geeksforgeeks.org › python › scipy-stats-nanmedian-function-python
sciPy stats.nanmedian() function | Python - GeeksforGeeks
February 11, 2019 - scipy.stats.nanmedian(array, axis=0) function calculates the median by ignoring the Nan (not a number) values of the array elements along the specified axis of the array.
🌐
SciPy
scipy.github.io › devdocs › reference › generated › scipy.stats.rv_continuous.median.html
median — SciPy v1.19.0.dev Manual
scipy.stats.rv_continuous. rv_continuous.median(*args, **kwds)[source]# Median of the distribution. Parameters: arg1, arg2, arg3,…array_like · The shape parameter(s) for the distribution (see docstring of the instance object for more information) locarray_like, optional ·
🌐
SciPy
docs.scipy.org › doc › › scipy-1.6.3 › reference › generated › scipy.stats.median_abs_deviation.html
scipy.stats.median_abs_deviation — SciPy v1.6.3 Reference Guide
scipy.stats.median_abs_deviation(x, axis=0, center=<function median at 0x7f31dd485b00>, scale=1.0, nan_policy='propagate')[source]¶ · Compute the median absolute deviation of the data along the given axis. The median absolute deviation (MAD, [1]) computes the median over the absolute deviations ...
🌐
ZetCode
zetcode.com › python › scipy-stats
Python SciPy Stats - Statistical Analysis in Python
March 8, 2025 - Install SciPy using pip to access the stats module and its powerful statistical functions. The mean is the average of a dataset, while the median is the middle value when sorted, robust against outliers.