class_docstr: A column composed of numerical data.
  
  This class encodes a standard interface for different types of columns
  containing numerical types of data. In particular, mathematical operations
  that make sense whether a column is integral or real, fixed or floating
  point, should be encoded here.
code: def kurtosis(self, skipna: Optional[bool] = None) -> float:
      skipna = True if skipna is None else skipna
  
      if len(self) == 0 or self._can_return_nan(skipna=skipna):
          return cudf.utils.dtypes._get_nan_for_dtype(self.dtype)
  
      self = self.nans_to_nulls().dropna()  # type: ignore
  
      if len(self) < 4:
          return cudf.utils.dtypes._get_nan_for_dtype(self.dtype)
  
      n = len(self)
      miu = self.mean()
      m4_numerator = (
          (self - miu) ** self.normalize_binop_value(4)
      ).sum()
      V = self.var()
  
      if V == 0:
          return 0
  
      term_one_section_one = (n * (n + 1)) / (
          (n - 1) * (n - 2) * (n - 3)
      )
      term_one_section_two = m4_numerator / (V**2)
      term_two = ((n - 1) ** 2) / ((n - 2) * (n - 3))
      kurt = term_one_section_one * term_one_section_two - 3 * term_two
      return kurt
  
imports: from __future__ import annotations
  from typing import Optional, cast
  import numpy
  import cudf
  from cudf import _lib
  from cudf._typing import ScalarLike
  from cudf.core.column import ColumnBase
  from cudf.core.missing import NA
  from cudf.core.mixins import Scannable
label_desc: Use image node_id 2 for calling the NumericalBaseColumn obj's underlying member method code with example usage: obj.kurtosis(skipna) and returns: kurt, cudf, cudf, int