class_docstr: Common features in univariate interpolation
  
  Deal with input data type and interpolation axis rolling. The
  actual interpolator can assume the y-data is of shape (n, r) where
  `n` is the number of x-points, and `r` the number of variables,
  and use self.dtype as the y-data type.
  
  Attributes
  ----------
  _y_axis
      Axis along which the interpolation goes in the original array
  _y_extra_shape
      Additional trailing shape of the input arrays, excluding
      the interpolation axis.
  dtype
      Dtype of the y-data arrays. Can be set via _set_dtype, which
      forces it to be float or complex.
  
  Methods
  -------
  __call__
  _prepare_x
  _finish_y
  _reshape_yi
  _set_yi
  _set_dtype
  _evaluate
code: def _set_yi(self, yi, xi=None, axis=None):
      if axis is None:
          axis = self._y_axis
      if axis is None:
          raise ValueError("no interpolation axis specified")
  
      yi = np.asarray(yi)
  
      shape = yi.shape
      if shape == ():
          shape = (1,)
      if xi is not None and shape[axis] != len(xi):
          raise ValueError(
              "x and y arrays must be equal in length along "
              "interpolation axis."
          )
  
      self._y_axis = axis % yi.ndim
      self._y_extra_shape = (
          yi.shape[: self._y_axis] + yi.shape[self._y_axis + 1 :]
      )
      self.dtype = None
      self._set_dtype(yi.dtype)
  
imports: import numpy
  from scipy.special import factorial
  from scipy._lib._util import _asarray_validated, float_factorial
label_desc: Use image node_id 7 for calling the _Interpolator1D obj's underlying member method code with example usage: obj._set_yi(yi, xi, axis) without return types