code: def _akima_interpolate(xi, yi, x, der=0, axis=0):
      
      from scipy import interpolate
      try:
          P = interpolate.Akima1DInterpolator(xi, yi, axis=axis)
      except TypeError:
          # Scipy earlier than 0.17.0 missing axis
          P = interpolate.Akima1DInterpolator(xi, yi)
      if der == 0:
          return P(x)
      elif interpolate._isscalar(der):
          return P(x, der=der)
      else:
          return [P(x, nu) for nu in der]
docs: Convenience function for akima interpolation.
      xi and yi are arrays of values used to approximate some function f,
      with ``yi = f(xi)``.
  
      See `Akima1DInterpolator` for details.
  
      Parameters
      ----------
      xi : array_like
          A sorted list of x-coordinates, of length N.
      yi :  array_like
          A 1-D array of real values.  `yi`'s length along the interpolation
          axis must be equal to the length of `xi`. If N-D array, use axis
          parameter to select correct axis.
      x : scalar or array_like
          Of length M.
      der : int or list, optional
          How many derivatives to extract; None for all potentially
          nonzero derivatives (that is a number equal to the number
          of points), or a list of derivatives to extract. This number
          includes the function value as 0th derivative.
      axis : int, optional
          Axis in the yi array corresponding to the x-coordinate values.
  
      See Also
      --------
      scipy.interpolate.Akima1DInterpolator
  
      Returns
      -------
      y : scalar or array_like
          The result, of length R or length M or M by R,