code: def _get_numeric_vars(X, threshold=5):
      """Attempt to determine which variables are numeric and which
      are categorical. The threshold for a 'continuous' variable
      is set to 5 by default.
      """
  
      cont = [
          (not hasattr(X.iloc[:, i], "cat"))
          and (X.iloc[:, i].nunique() >= threshold)
          for i in range(X.shape[1])
      ]
  
      prop = [X.iloc[:, i].nunique() == 2 for i in range(X.shape[1])]
  
      cont_cols = list(X.loc[:, cont].columns)
      prop_cols = list(X.loc[:, prop].columns)
  
      dropped = set(X.columns) - set(cont_cols + prop_cols)
  
      if dropped:
          logger.info(
              'Some non-binary variables were dropped because they had fewer than {} unique values or were of the \
                       dtype "cat". The dropped variables are: {}'.format(
                  threshold, dropped
              )
          )
  
      return cont_cols, prop_cols
  
imports: from matplotlib import pyplot
  import logging
  import numpy
  import pandas
  import seaborn
  from lightgbm import LGBMRegressor
  from ..inference.meta.tmle import TMLELearner
label_desc: Use image node_id 18 for calling a global function with example usage: _get_numeric_vars(X, threshold) and returns: cont_cols,  prop_cols