class_docstr: The config transformer transforms a set of model configs into a set of
  NumPy arrays.
class_docstr_tok: ["The","config","transformer","transforms","a","set","of","model","configs","into","a","set","of","NumPy","arrays","."]
code: def _transform(
      self, configs: list[ModelConfig]
  ) -> npt.NDArray[np.float32]:
      result = np.empty((len(configs), len(self.feature_names_)))
      result.fill(np.nan)
  
      # pylint: disable=no-member
      shared_attributes = set(TrainConfig.__dataclass_fields__.keys())
      for i, config in enumerate(configs):
          result[i, self.model_type_map[config.name()]] = 1
          for field in config.__dataclass_fields__:
              if field in shared_attributes:
                  result[i, self.attribute_map[field]] = getattr(
                      config, field
                  )
              else:
                  result[
                      i, self.attribute_map[f"{config.name()}_{field}"]
                  ] = getattr(config, field)
  
      return result
  
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  from typing import Any, cast, Dict, List, Optional, Set, Union
  import numpy
  import numpy.typing
  import pandas
  from sklearn.base import TransformerMixin
  from sklearn.feature_extraction import DictVectorizer
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import make_pipeline, make_union
  from sklearn.preprocessing import MinMaxScaler, PowerTransformer, StandardScaler
  from tsbench.config import Config, EnsembleConfig, MODEL_REGISTRY, ModelConfig, TrainConfig
  from tsbench.config.model.models import SeasonalNaiveModelConfig
  from tsbench.evaluations.tracking import ModelTracker
label_desc: Use image node_id 5 for calling the EnsembleConfigTransformer obj's underlying member method code with example usage: obj._transform(configs) and returns: result