diff options
author | Tobias Pitters <31857876+CloseChoice@users.noreply.github.com> | 2020-06-12 21:32:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-12 21:32:09 +0200 |
commit | 2b7f671086ec50109ae3d073d8cc14d9085558c7 (patch) | |
tree | 12877d0f5b9c42aa7e3c324e360def09b94c1e1b /numpy/lib/function_base.py | |
parent | 2c05353e8342c555604be78a640646bc01511208 (diff) | |
download | numpy-2b7f671086ec50109ae3d073d8cc14d9085558c7.tar.gz |
Update numpy/lib/function_base.py
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index a3044f27d..85e75305d 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -3876,17 +3876,12 @@ def _quantile_is_valid(q): def _lerp(a, b, t, out=None): """ Linearly interpolate from a to b by a factor of t """ diff_b_a = subtract(b, a) - - _scalar_or_0d = lambda x: np.isscalar(x) or np.ndim(x) == 0 - if _scalar_or_0d(a) and _scalar_or_0d(b) and _scalar_or_0d(t): - if t <= 0.5: - return add(a, diff_b_a * t, out=out) - else: - return subtract(b, diff_b_a * (1 - t), out=out) - else: - lerp_interpolation = add(a, diff_b_a*t, out=out) - subtract(b, diff_b_a * (1 - t), out=lerp_interpolation, where=t>=0.5) - return lerp_interpolation + # asanyarray is a stop-gap until gh-13105 + lerp_interpolation = asanyarray(add(a, diff_b_a*t, out=out)) + subtract(b, diff_b_a * (1 - t), out=lerp_interpolation, where=t>=0.5) + if lerp_interpolation.ndim == 0 and out is None: + lerp_interpolation = lerp_interpolation[()] # unpack 0d arrays + return lerp_interpolation def _quantile_ureduce_func(a, q, axis=None, out=None, overwrite_input=False, |