code: def _generate_list_with_types(
      columns_types_info: pd.DataFrame,
      converted_columns: Dict[int, Optional[int]],
  ) -> np.ndarray:
      """Create list with types for all remained columns
  
      :param columns_types_info: dictionary with initial column types
      :param converted_columns: dictionary with transformed column types
      """
      updated_col_type_ids = []
  
      for column_id, column_type_ids in columns_types_info.loc[
          _TYPES
      ].items():
          if len(column_type_ids) == 1:
              # Column initially contain only one type
              updated_col_type_ids.append(column_type_ids[0])
          elif (
              len(column_type_ids) == 2
              and TYPE_TO_ID[type(None)] in column_type_ids
          ):
              # Column with one type and nans
              filtered_types = [
                  x
                  for x in column_type_ids
                  if x != TYPE_TO_ID[type(None)]
              ]
              updated_col_type_ids.append(filtered_types[0])
          else:
              if TYPE_TO_ID[str] in column_type_ids:
                  # Mixed-types column with string
                  new_col_id = converted_columns[column_id]
                  if new_col_id is not None:
                      updated_col_type_ids.append(new_col_id)
              else:
                  # Mixed-types with float and integer
                  updated_col_type_ids.append(TYPE_TO_ID[float])
  
      return np.array(updated_col_type_ids)
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  from typing import TYPE_CHECKING, Dict, List, Optional, Tuple
  import numpy
  import pandas
  from golem.core.log import LoggerAdapter, default_log
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 8 for calling a global function with example usage: _generate_list_with_types(columns_types_info, converted_columns) and returns: np