summaryrefslogtreecommitdiff
path: root/numpy/lib/function_base.py
diff options
context:
space:
mode:
authorAntony Lee <anntzer.lee@gmail.com>2021-11-05 00:05:04 +0100
committerAntony Lee <anntzer.lee@gmail.com>2021-11-05 00:05:04 +0100
commitf9c2573898899ee3809dfd4ebba113f6de2d528b (patch)
treefb9b7cb0294ed1cd5095ea09f81dbbe9f66a9fd5 /numpy/lib/function_base.py
parentfe7b1dcfc16fd9a8a1e6ea24ea103abf870282ed (diff)
downloadnumpy-f9c2573898899ee3809dfd4ebba113f6de2d528b.tar.gz
PERF: Speedup np.quantile.
Avoiding the unnecessary calls to moveaxis() speed up `np.quantile(x, .5)` (`x = np.random.rand(1000)`) by ~10% (although there's a lot of variability) for me.
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r--numpy/lib/function_base.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py
index 07d8a4269..4d57acdb2 100644
--- a/numpy/lib/function_base.py
+++ b/numpy/lib/function_base.py
@@ -4567,7 +4567,8 @@ def _quantile(
# The dimensions of `q` are prepended to the output shape, so we need the
# axis being sampled from `arr` to be last.
DATA_AXIS = 0
- arr = np.moveaxis(arr, axis, destination=DATA_AXIS)
+ if axis != DATA_AXIS: # But moveaxis is slow, so only call it if axis!=0.
+ arr = np.moveaxis(arr, axis, destination=DATA_AXIS)
# --- Computation of indexes
# Index where to find the value in the sorted array.
# Virtual because it is a floating point value, not an valid index.