class_docstr: Shared set-up procedures across numerical transformers, i.e.,
  variable transformers, discretisers, math combination.
class_docstr_tok: ["Shared","set-up","procedures","across","numerical","transformers",",","i.e.",",","variable","transformers",",","discretisers",",","math","combination","."]
docstr: Checks that input is a dataframe, finds numerical variables, or alternatively
  checks that variables entered by the user are of type numerical.
  
  Parameters
  ----------
  X : Pandas DataFrame
  
  y : Pandas Series, np.array. Default = None
      Parameter is necessary for compatibility with sklearn Pipeline.
  
  Raises
  ------
  TypeError
      If the input is not a Pandas DataFrame or a numpy array
      If any of the user provided variables are not numerical
  ValueError
      If there are no numerical variables in the df or the df is empty
      If the variable(s) contain null values
  
  Returns
  -------
  X : Pandas DataFrame
      The same dataframe entered as parameter
docstr_tok: ["Checks","that","input","is","a","dataframe",",","finds","numerical","variables",",","or","alternatively","checks","that","variables","entered","by","the","user","are","of","type","numerical",".","Parameters","--","--","--","--","--","X",":","Pandas","DataFrame","y",":","Pandas","Series",",","np.array",".","Default","=","None","Parameter","is","necessary","for","compatibility","with","sklearn","Pipeline",".","Raises","--","--","--","TypeError","If","the","input","is","not","a","Pandas","DataFrame","or","a","numpy","array","If","any","of","the","user","provided","variables","are","not","numerical","ValueError","If","there","are","no","numerical","variables","in","the","df","or","the","df","is","empty","If","the","variable","(","s",")","contain","null","values","Returns","--","--","--","-","X",":","Pandas","DataFrame","The","same","dataframe","entered","as","parameter"]
code: def fit(self, X: pd.DataFrame) -> pd.DataFrame:
      """
      Checks that input is a dataframe, finds numerical variables, or alternatively
      checks that variables entered by the user are of type numerical.
  
      Parameters
      ----------
      X : Pandas DataFrame
  
      y : Pandas Series, np.array. Default = None
          Parameter is necessary for compatibility with sklearn Pipeline.
  
      Raises
      ------
      TypeError
          If the input is not a Pandas DataFrame or a numpy array
          If any of the user provided variables are not numerical
      ValueError
          If there are no numerical variables in the df or the df is empty
          If the variable(s) contain null values
  
      Returns
      -------
      X : Pandas DataFrame
          The same dataframe entered as parameter
      """
  
      # check input dataframe
      X = check_X(X)
  
      # find or check for numerical variables
      self.variables_ = _find_or_check_numerical_variables(
          X, self.variables
      )
  
      # check if dataset contains na or inf
      _check_contains_na(X, self.variables_)
      _check_contains_inf(X, self.variables_)
  
      # save input features
      self.feature_names_in_ = X.columns.tolist()
  
      # save train set shape
      self.n_features_in_ = X.shape[1]
  
      return X
  
file_path: feature_engine/feature_engine/_base_transformers/base_numerical.py
imports: import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.utils.validation import check_is_fitted
  from feature_engine._variable_handling.variable_type_selection import _find_or_check_numerical_variables
  from feature_engine.dataframe_checks import _check_contains_inf, _check_contains_na, _check_X_matches_training_df, check_X
  from feature_engine._base_transformers.mixins import GetFeatureNamesOutMixin
  from feature_engine.tags import _return_tags
label_desc: Use image node_id 1 for calling the BaseNumericalTransformer obj's underlying member method code with example usage: obj.fit(X) and returns: X