diff options
author | Eric Wieser <wieser.eric@gmail.com> | 2018-02-25 11:28:31 -0800 |
---|---|---|
committer | Eric Wieser <wieser.eric@gmail.com> | 2018-02-25 11:28:31 -0800 |
commit | 8eccbf7df2f564e23c1bf7c9f5ee08e4b0dc6a36 (patch) | |
tree | 343b263cb1318c45013915e804a19102fa58d0c0 /numpy/lib/function_base.py | |
parent | 6d1687cbcdf32a2bde765d39394a7b2bb9838ae4 (diff) | |
download | python-numpy-8eccbf7df2f564e23c1bf7c9f5ee08e4b0dc6a36.tar.gz python-numpy-8eccbf7df2f564e23c1bf7c9f5ee08e4b0dc6a36.tar.bz2 python-numpy-8eccbf7df2f564e23c1bf7c9f5ee08e4b0dc6a36.zip |
BUG/MAINT: Remove special handling of 0d arrays and scalars in interp
These are now handled generically by the underlying C function
This fixes the period argument for 0d arrays.
Now never returns a pure-python scalar, which matches the behaviour of most of numpy.
Rework of b66a200a4a1e98f1955c8a774e4ebfb4588dab5b
Diffstat (limited to 'numpy/lib/function_base.py')
-rw-r--r-- | numpy/lib/function_base.py | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index 391c47a06..504280cef 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -1255,23 +1255,13 @@ def interp(x, xp, fp, left=None, right=None, period=None): interp_func = compiled_interp input_dtype = np.float64 - if period is None: - if isinstance(x, (float, int, number)): - return interp_func([x], xp, fp, left, right).item() - elif isinstance(x, np.ndarray) and x.ndim == 0: - return interp_func([x], xp, fp, left, right).item() - else: - return interp_func(x, xp, fp, left, right) - else: + if period is not None: if period == 0: raise ValueError("period must be a non-zero value") period = abs(period) left = None right = None - return_array = True - if isinstance(x, (float, int, number)): - return_array = False - x = [x] + x = np.asarray(x, dtype=np.float64) xp = np.asarray(xp, dtype=np.float64) fp = np.asarray(fp, dtype=input_dtype) @@ -1289,10 +1279,7 @@ def interp(x, xp, fp, left=None, right=None, period=None): xp = np.concatenate((xp[-1:]-period, xp, xp[0:1]+period)) fp = np.concatenate((fp[-1:], fp, fp[0:1])) - if return_array: - return interp_func(x, xp, fp, left, right) - else: - return interp_func(x, xp, fp, left, right).item() + return interp_func(x, xp, fp, left, right) def angle(z, deg=0): |