tabinv¶
- sofia_redux.toolkit.interpolate.interpolate.tabinv(array, xvals, missing=None, fast=True)[source]¶
Find the effective index of a function value in an ordered vector with NaN handling.
- Parameters:
- arrayarray_like
The array to be searched. Should be monotonic increasing or decreasing.
- xvalsthe function value(s) whose effective index is sought
- missingfloat or int, optional
Value to return if outside the limits. Default uses constant value of the first or last value in the array. Only pertinent if
fastis True.- fastbool, optional
If False, uses
findidxto check if x in monotonic and does not allow extrapolation beyond the limits ofarray. NaNs will break monotonic check if not limited to padding on the edges ofarray. If fast is True, np.interp is used without any form of error checking.
- Returns:
- numpy.ndarray
The effective index or indices of
array
Examples
>>> from sofia_redux.toolkit.interpolate.interpolate import tabinv >>> import numpy as np >>> import pytest >>> x = [np.nan, np.nan, 1, 2, np.nan, 3, np.nan, np.nan] >>> tabinv(x, 1.5) 2.5 >>> with pytest.raises(ValueError): ... tabinv(x, 1.5, fast=False) ... >>> x = [np.nan, np.nan, 1, 2, 3, np.nan, np.nan] >>> tabinv(x, 1.5, fast=False) 2.5