code: def get_statistics(
      X: np.ndarray,
      preprocessor: Callable[[np.ndarray], np.ndarray],
      category_map: Dict[int, List[str]],
  ) -> Dict[int, Dict[str, float]]:
      """
      Computes statistics.
  
      Parameters
      ----------
      X
          Instances for which to compute statistic.
      preprocessor
          Data preprocessor. The preprocessor should standardize the numerical values and convert categorical ones
          into one-hot encoding representation. By convention, numerical features should be first, followed by the
          rest of categorical ones.
      category_map
          Dictionary of category mapping. The keys are column indexes and the values are lists containing the
          possible feature values. This should be provided by the dataset.
  
      Returns
      -------
      Dictionary of statistics. For each numerical column, the minimum and maximum value is returned.
      """
      stats = dict()
  
      # Extract numerical features
      num_features_ids = [
          id for id in range(X.shape[1]) if id not in category_map
      ]
  
      # Preprocess data (standardize + one-hot encoding)
      X_ohe = preprocessor(X)
  
      for i, feature_id in enumerate(num_features_ids):
          min, max = np.min(X_ohe[:, i]), np.max(X_ohe[:, i])
          stats[feature_id] = {"min": min, "max": max}
  
      return stats
  
imports: from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  from scipy.special import softmax
  from sklearn.compose import ColumnTransformer
  from sklearn.preprocessing import OneHotEncoder, StandardScaler
label_desc: Use image node_id 10 for calling a global function with example usage: get_statistics(X, preprocessor, category_map) and returns: stats