summaryrefslogtreecommitdiff
path: root/numpy/lib/nanfunctions.py
diff options
context:
space:
mode:
authorMatteo Raso <33975162+MatteoRaso@users.noreply.github.com>2022-12-08 07:01:59 -0500
committerGitHub <noreply@github.com>2022-12-08 13:01:59 +0100
commitb3c0960a54c81a26bd07912dda96db9e356b34d1 (patch)
tree2eca2dbef14e50ddc3340c20413c60e011c62ff2 /numpy/lib/nanfunctions.py
parent6f9237e91ef26df62d40161458178f972db7ce26 (diff)
downloadnumpy-b3c0960a54c81a26bd07912dda96db9e356b34d1.tar.gz
BUG: Quantile function on complex number now throws an error (#22652) (#22703)
Since percentile is more or less identical to quantile, I also made it throw an error if it receives a complex input. I also made nanquantile and nanpercentile throw errors as well. * Made the changes recommended by seberg * Fixed a test for PR 22703 * Fixed tests for quantile * Shortened some more lines * Fixup more lines Co-authored-by: Sebastian Berg <sebastianb@nvidia.com>
Diffstat (limited to 'numpy/lib/nanfunctions.py')
-rw-r--r--numpy/lib/nanfunctions.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/numpy/lib/nanfunctions.py b/numpy/lib/nanfunctions.py
index ae2dfa165..786d2021e 100644
--- a/numpy/lib/nanfunctions.py
+++ b/numpy/lib/nanfunctions.py
@@ -1373,6 +1373,9 @@ def nanpercentile(
method, interpolation, "nanpercentile")
a = np.asanyarray(a)
+ if a.dtype.kind == "c":
+ raise TypeError("a must be an array of real numbers")
+
q = np.true_divide(q, 100.0)
# undo any decay that the ufunc performed (see gh-13105)
q = np.asanyarray(q)
@@ -1527,11 +1530,15 @@ def nanquantile(
The American Statistician, 50(4), pp. 361-365, 1996
"""
+
if interpolation is not None:
method = function_base._check_interpolation_as_method(
method, interpolation, "nanquantile")
a = np.asanyarray(a)
+ if a.dtype.kind == "c":
+ raise TypeError("a must be an array of real numbers")
+
q = np.asanyarray(q)
if not function_base._quantile_is_valid(q):
raise ValueError("Quantiles must be in the range [0, 1]")