code: def get_feature_arraycol_map(processor, max_category_levels):
      """Returns OrderedDict of feature-name -> list of column-indices in processed data array corresponding to this feature"""
      feature_preserving_transforms = set(
          ["continuous", "skewed", "ordinal", "bool", "remainder"]
      )  # these transforms do not alter dimensionality of feature
      feature_arraycol_map = {}  # unordered version
      current_colindex = 0
      for transformer in processor.transformers_:
          transformer_name = transformer[0]
          transformed_features = transformer[2]
          if transformer_name in feature_preserving_transforms:
              for feature in transformed_features:
                  if feature in feature_arraycol_map:
                      raise ValueError(
                          "same feature is processed by two different column transformers: %s"
                          % feature
                      )
                  feature_arraycol_map[feature] = [current_colindex]
                  current_colindex += 1
          elif transformer_name == "onehot":
              oh_encoder = [
                  step
                  for (name, step) in transformer[1].steps
                  if name == "onehot"
              ][0]
              for i in range(len(transformed_features)):
                  feature = transformed_features[i]
                  if feature in feature_arraycol_map:
                      raise ValueError(
                          "same feature is processed by two different column transformers: %s"
                          % feature
                      )
                  oh_dimensionality = min(
                      len(oh_encoder.categories_[i]),
                      max_category_levels + 1,
                  )
                  feature_arraycol_map[feature] = list(
                      range(
                          current_colindex,
                          current_colindex + oh_dimensionality,
                      )
                  )
                  current_colindex += oh_dimensionality
          else:
              raise ValueError(
                  "unknown transformer encountered: %s"
                  % transformer_name
              )
      return OrderedDict(
          [
              (key, feature_arraycol_map[key])
              for key in feature_arraycol_map
          ]
      )
  
file_path: autogluon/tabular/src/autogluon/tabular/models/tabular_nn/utils/data_preprocessor.py
imports: from collections import OrderedDict
  from sklearn.compose import ColumnTransformer
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import Pipeline
  from sklearn.preprocessing import FunctionTransformer, QuantileTransformer, StandardScaler
  from .categorical_encoders import OneHotMergeRaresHandleUnknownEncoder, OrdinalMergeRaresHandleUnknownEncoder
label_desc: Use image node_id 3 for calling a global function with example usage: get_feature_arraycol_map(processor, max_category_levels) and returns: OrderedDict