parameters: (values, axis=None, skipna=True, ddof=1, mask=None)
return_statement: return _wrap_results(result, values.dtype)
docstring: Compute the variance along given axis while ignoring NaNs
  
      Parameters
      ----------
      values : ndarray
      axis: int, optional
      skipna : bool, default True
      ddof : int, default 1
          Delta Degrees of Freedom. The divisor used in calculations is N - ddof,
          where N represents the number of elements.
      mask : ndarray[bool], optional
          nan-mask if known
  
      Returns
      -------
      result : float
          Unless input is a float array, in which case use the same
          precision as the input array.
  
      Examples
      --------
      >>> import pandas.core.nanops as nanops
      >>> s = pd.Series([1, np.nan, 2, 3])
      >>> nanops.nanvar(s)
      1.0
docstring_summary: Compute the variance along given axis while ignoring NaNs
docstring_tokens: Compute the variance along given axis while ignoring NaNs
function: def nanvar(values, axis=None, skipna=True, ddof=1, mask=None):
      """
      Compute the variance along given axis while ignoring NaNs
  
      Parameters
      ----------
      values : ndarray
      axis: int, optional
      skipna : bool, default True
      ddof : int, default 1
          Delta Degrees of Freedom. The divisor used in calculations is N - ddof,
          where N represents the number of elements.
      mask : ndarray[bool], optional
          nan-mask if known
  
      Returns
      -------
      result : float
          Unless input is a float array, in which case use the same
          precision as the input array.
  
      Examples
      --------
      >>> import pandas.core.nanops as nanops
      >>> s = pd.Series([1, np.nan, 2, 3])
      >>> nanops.nanvar(s)
      1.0
      """
      values = com.values_from_object(values)
      dtype = values.dtype
      if mask is None:
          mask = isna(values)
      if is_any_int_dtype(values):
          values = values.astype('f8')
          values[mask] = np.nan
  
      if is_float_dtype(values):
          count, d = _get_counts_nanvar(mask, axis, ddof, values.dtype)
      else:
          count, d = _get_counts_nanvar(mask, axis, ddof)
  
      if skipna:
          values = values.copy()
          np.putmask(values, mask, 0)
  
      # xref GH10242
      # Compute variance via two-pass algorithm, which is stable against
      # cancellation errors and relatively accurate for small numbers of
      # observations.
      #
      # See https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
      avg = _ensure_numeric(values.sum(axis=axis, dtype=np.float64)) / count
      if axis is not None:
          avg = np.expand_dims(avg, axis)
      sqr = _ensure_numeric((avg - values) ** 2)
      np.putmask(sqr, mask, 0)
      result = sqr.sum(axis=axis, dtype=np.float64) / d
  
      # Return variance as np.float64 (the datatype used in the accumulator),
      # unless we were dealing with a float array, in which case use the same
      # precision as the original values array.
      if is_float_dtype(dtype):
          result = result.astype(dtype)
      return _wrap_results(result, values.dtype)
function_tokens: def nanvar ( values , axis = None , skipna = True , ddof = 1 , mask = None ) : values = com . values_from_object ( values ) dtype = values . dtype if mask is None : mask = isna ( values ) if is_any_int_dtype ( values ) : values = values . astype ( 'f8' ) values [ mask ] = np . nan if is_float_dtype ( values ) : count , d = _get_counts_nanvar ( mask , axis , ddof , values . dtype ) else : count , d = _get_counts_nanvar ( mask , axis , ddof ) if skipna : values = values . copy ( ) np . putmask ( values , mask , 0 ) # xref GH10242 # Compute variance via two-pass algorithm, which is stable against # cancellation errors and relatively accurate for small numbers of # observations. # # See https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance avg = _ensure_numeric ( values . sum ( axis = axis , dtype = np . float64 ) ) / count if axis is not None : avg = np . expand_dims ( avg , axis ) sqr = _ensure_numeric ( ( avg - values ) ** 2 ) np . putmask ( sqr , mask , 0 ) result = sqr . sum ( axis = axis , dtype = np . float64 ) / d # Return variance as np.float64 (the datatype used in the accumulator), # unless we were dealing with a float array, in which case use the same # precision as the original values array. if is_float_dtype ( dtype ) : result = result . astype ( dtype ) return _wrap_results ( result , values . dtype )