diff options
author | abel <aoun@cerfacs.fr> | 2021-11-09 10:35:12 +0100 |
---|---|---|
committer | abel <aoun@cerfacs.fr> | 2021-11-09 10:39:37 +0100 |
commit | 6cd68755c6fd0686dd57a9daec43d8aa09d15c3e (patch) | |
tree | 8308a87b1b8fdc1ce6cd2337e3fc576c039f49b4 /numpy/lib/function_base.py | |
parent | c280e21a74f2a6fd16d9c318696fcf167689baa3 (diff) | |
download | numpy-6cd68755c6fd0686dd57a9daec43d8aa09d15c3e.tar.gz |
MTH: Update quantile default lerp method
For method 7 of H&F, using `(n - 1) * quantiles`
instead of the usual method gives a more accurate
result.
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 86125168a..3c9983edf 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -67,7 +67,7 @@ __all__ = [ # fix_gamma : Callable # A function used for discret methods to force the index to a specific value. _QuantileInterpolation = dict( - # --- HYNDMAN and FAN methods + # --- HYNDMAN AND FAN METHODS # Discrete methods inverted_cdf=dict( get_virtual_index=lambda n, quantiles: _inverted_cdf(n, quantiles), @@ -102,10 +102,12 @@ _QuantileInterpolation = dict( _compute_virtual_index(n, quantiles, 0, 0), fix_gamma=lambda gamma, _: gamma, ), - # Default value + # Default method. + # To avoid some rounding issues, `(n-1) * quantiles` is preferred to + # `_compute_virtual_index(n, quantiles, 1, 1)`. + # They are mathematically equivalent. linear=dict( - get_virtual_index=lambda n, quantiles: - _compute_virtual_index(n, quantiles, 1, 1), + get_virtual_index=lambda n, quantiles: (n - 1) * quantiles, fix_gamma=lambda gamma, _: gamma, ), median_unbiased=dict( @@ -118,7 +120,7 @@ _QuantileInterpolation = dict( _compute_virtual_index(n, quantiles, 3 / 8.0, 3 / 8.0), fix_gamma=lambda gamma, _: gamma, ), - # --- OTHER METHODS fixme add deprecated ? + # --- OTHER METHODS lower=dict( get_virtual_index=lambda n, quantiles: np.floor( (n - 1) * quantiles).astype(np.intp), |