diff options
author | Eric Wieser <wieser.eric@gmail.com> | 2019-04-23 01:55:21 -0700 |
---|---|---|
committer | Eric Wieser <wieser.eric@gmail.com> | 2019-04-23 22:48:02 -0700 |
commit | 9a23f16b67958205468f7f5c4e0966f393558d9a (patch) | |
tree | 9f42fe0fec010d33a0708a16f9d7af13c71b1c73 /numpy/lib/function_base.py | |
parent | f91b033aa35b929610c0db12f16b1b0c1ddc08e6 (diff) | |
download | numpy-9a23f16b67958205468f7f5c4e0966f393558d9a.tar.gz |
ENH: Add support for Fraction to percentile and quantile
With true division available, using `.0` to convert integers to floats offers no value, and harms compatibility with precise rational types.
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 2e82fa075..cab680751 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -3706,7 +3706,8 @@ def percentile(a, q, axis=None, out=None, plt.show() """ - q = np.true_divide(q, 100.0) # handles the asarray for us too + q = np.true_divide(q, 100) + q = asanyarray(q) # undo any decay that the ufunc performed (see gh-13105) if not _quantile_is_valid(q): raise ValueError("Percentiles must be in the range [0, 100]") return _quantile_unchecked( @@ -3924,7 +3925,7 @@ def _quantile_ureduce_func(a, q, axis=None, out=None, overwrite_input=False, indices_above = concatenate((indices_above, [-1])) weights_above = indices - indices_below - weights_below = 1.0 - weights_above + weights_below = 1 - weights_above weights_shape = [1, ] * ap.ndim weights_shape[axis] = len(indices) |