parameters: (x, q, axis=None, interpolation='linear', keepdims=False, contains_nan=False)
return_statement: return result
docstring: Private wrapper that works around the following:
  
        1. A bug in `np.nanpercentile` that was around until numpy version
           1.11.0.
        2. A bug in `np.percentile` NaN handling that was fixed in numpy
           version 1.10.0.
        3. The non-existence of `np.nanpercentile` before numpy version
           1.9.0.
  
      While this function is pretty much necessary for the moment, it
      should be removed as soon as the minimum supported numpy version
      allows.
docstring_summary: Private wrapper that works around the following:
docstring_tokens: Private wrapper that works around the following :
function: def _iqr_nanpercentile(x, q, axis=None, interpolation='linear', keepdims=False, contains_nan=False):
      """
      Private wrapper that works around the following:
  
        1. A bug in `np.nanpercentile` that was around until numpy version
           1.11.0.
        2. A bug in `np.percentile` NaN handling that was fixed in numpy
           version 1.10.0.
        3. The non-existence of `np.nanpercentile` before numpy version
           1.9.0.
  
      While this function is pretty much necessary for the moment, it
      should be removed as soon as the minimum supported numpy version
      allows.
      """
      if hasattr(np, 'nanpercentile'):
          # At time or writing, this means np.__version__ < 1.9.0
          result = np.nanpercentile(x, q, axis=axis,
                                    interpolation=interpolation, keepdims=keepdims)
          # If non-scalar result and nanpercentile does not do proper axis roll.
          # I see no way of avoiding the version test since dimensions may just
          # happen to match in the data.
          if result.ndim > 1 and NumpyVersion(np.__version__) < '1.11.0a':
              axis = np.asarray(axis)
              if axis.size == 1:
                  # If only one axis specified, reduction happens along that dimension
                  if axis.ndim == 0:
                      axis = axis[None]
                  result = np.rollaxis(result, axis[0])
              else:
                  # If multiple axes, reduced dimeision is last
                  result = np.rollaxis(result, -1)
      else:
          msg = "Keyword nan_policy='omit' not correctly supported for numpy " \
                "versions < 1.9.x. The default behavior of  numpy.percentile " \
                "will be used."
          warnings.warn(msg, RuntimeWarning)
          result = _iqr_percentile(x, q, axis=axis)
  
      return result
function_tokens: def _iqr_nanpercentile ( x , q , axis = None , interpolation = 'linear' , keepdims = False , contains_nan = False ) : if hasattr ( np , 'nanpercentile' ) : # At time or writing, this means np.__version__ < 1.9.0 result = np . nanpercentile ( x , q , axis = axis , interpolation = interpolation , keepdims = keepdims ) # If non-scalar result and nanpercentile does not do proper axis roll. # I see no way of avoiding the version test since dimensions may just # happen to match in the data. if result . ndim > 1 and NumpyVersion ( np . __version__ ) < '1.11.0a' : axis = np . asarray ( axis ) if axis . size == 1 : # If only one axis specified, reduction happens along that dimension if axis . ndim == 0 : axis = axis [ None ] result = np . rollaxis ( result , axis [ 0 ] ) else : # If multiple axes, reduced dimeision is last result = np . rollaxis ( result , - 1 ) else : msg = "Keyword nan_policy='omit' not correctly supported for numpy " "versions < 1.9.x. The default behavior of  numpy.percentile " "will be used." warnings . warn ( msg , RuntimeWarning ) result = _iqr_percentile ( x , q , axis = axis ) return result