parameters: (x, q, interpolation_method='fraction')
docstring: Compute sample quantile or quantiles of the input array. For example, q=0.5
      computes the median.
  
      The `interpolation_method` parameter supports three values, namely
      `fraction` (default), `lower` and `higher`. Interpolation is done only,
      if the desired quantile lies between two data points `i` and `j`. For
      `fraction`, the result is an interpolated value between `i` and `j`;
      for `lower`, the result is `i`, for `higher` the result is `j`.
  
      Parameters
      ----------
      x : ndarray
          Values from which to extract score.
      q : scalar or array
          Percentile at which to extract score.
      interpolation_method : {'fraction', 'lower', 'higher'}, optional
          This optional parameter specifies the interpolation method to use,
          when the desired quantile lies between two data points `i` and `j`:
  
          - fraction: `i + (j - i)*fraction`, where `fraction` is the
                      fractional part of the index surrounded by `i` and `j`.
          -lower: `i`.
          - higher: `j`.
  
      Returns
      -------
      score : float
          Score at percentile.
  
      Examples
      --------
      >>> from scipy import stats
      >>> a = np.arange(100)
      >>> stats.scoreatpercentile(a, 50)
      49.5
docstring_summary: Compute sample quantile or quantiles of the input array. For example, q=0.5
      computes the median.
docstring_tokens: Compute sample quantile or quantiles of the input array . For example q = 0 . 5 computes the median .
function: def quantile(x, q, interpolation_method='fraction'):
      """
      Compute sample quantile or quantiles of the input array. For example, q=0.5
      computes the median.
  
      The `interpolation_method` parameter supports three values, namely
      `fraction` (default), `lower` and `higher`. Interpolation is done only,
      if the desired quantile lies between two data points `i` and `j`. For
      `fraction`, the result is an interpolated value between `i` and `j`;
      for `lower`, the result is `i`, for `higher` the result is `j`.
  
      Parameters
      ----------
      x : ndarray
          Values from which to extract score.
      q : scalar or array
          Percentile at which to extract score.
      interpolation_method : {'fraction', 'lower', 'higher'}, optional
          This optional parameter specifies the interpolation method to use,
          when the desired quantile lies between two data points `i` and `j`:
  
          - fraction: `i + (j - i)*fraction`, where `fraction` is the
                      fractional part of the index surrounded by `i` and `j`.
          -lower: `i`.
          - higher: `j`.
  
      Returns
      -------
      score : float
          Score at percentile.
  
      Examples
      --------
      >>> from scipy import stats
      >>> a = np.arange(100)
      >>> stats.scoreatpercentile(a, 50)
      49.5
  
      """
      x = np.asarray(x)
      mask = isna(x)
  
      x = x[~mask]
  
      values = np.sort(x)
  
      def _interpolate(a, b, fraction):
          """Returns the point at the given fraction between a and b, where
          'fraction' must be between 0 and 1.
          """
          return a + (b - a) * fraction
  
      def _get_score(at):
          if len(values) == 0:
              return np.nan
  
          idx = at * (len(values) - 1)
          if idx % 1 == 0:
              score = values[int(idx)]
          else:
              if interpolation_method == 'fraction':
                  score = _interpolate(values[int(idx)], values[int(idx) + 1],
                                       idx % 1)
              elif interpolation_method == 'lower':
                  score = values[np.floor(idx)]
              elif interpolation_method == 'higher':
                  score = values[np.ceil(idx)]
              else:
                  raise ValueError("interpolation_method can only be 'fraction' "
                                   ", 'lower' or 'higher'")
  
          return score
  
      if is_scalar(q):
          return _get_score(q)
      else:
          q = np.asarray(q, np.float64)
          return algos.arrmap_float64(q, _get_score)
function_tokens: def quantile ( x , q , interpolation_method = 'fraction' ) : x = np . asarray ( x ) mask = isna ( x ) x = x [ ~ mask ] values = np . sort ( x ) def _interpolate ( a , b , fraction ) : """Returns the point at the given fraction between a and b, where
          'fraction' must be between 0 and 1.
          """ return a + ( b - a ) * fraction def _get_score ( at ) : if len ( values ) == 0 : return np . nan idx = at * ( len ( values ) - 1 ) if idx % 1 == 0 : score = values [ int ( idx ) ] else : if interpolation_method == 'fraction' : score = _interpolate ( values [ int ( idx ) ] , values [ int ( idx ) + 1 ] , idx % 1 ) elif interpolation_method == 'lower' : score = values [ np . floor ( idx ) ] elif interpolation_method == 'higher' : score = values [ np . ceil ( idx ) ] else : raise ValueError ( "interpolation_method can only be 'fraction' " ", 'lower' or 'higher'" ) return score if is_scalar ( q ) : return _get_score ( q ) else : q = np . asarray ( q , np . float64 ) return algos . arrmap_float64 ( q , _get_score )