code: def find_categorical_columns(
      table: np.ndarray, column_type_ids: Optional[np.ndarray] = None
  ):
      """
      Method for finding categorical and non-categorical columns in tabular data
  
      Args:
          table: tabular data for string columns types determination.
          column_type_ids: list with column type ids. If None, perform default checking.
      Returns:
          categorical_ids: indices of categorical columns in table.
          non_categorical_ids: indices of non categorical columns in table.
      """
      if column_type_ids is None:
          # Define if data contains string columns for "unknown table"
          return force_categorical_determination(table)
  
      is_str = column_type_ids == TYPE_TO_ID[str]
      categorical_ids = np.flatnonzero(is_str).tolist()
      non_categorical_ids = np.flatnonzero(~is_str).tolist()
  
      return categorical_ids, non_categorical_ids
  
file_path: FEDOT/fedot/core/data/data_preprocessing.py
imports: from typing import Optional, Tuple
  import numpy
  import pandas
  from fedot.core.data.data import InputData, data_type_is_multi_ts, data_type_is_table, data_type_is_ts
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.preprocessing.data_types import TYPE_TO_ID
label_desc: Use image node_id 6 for calling a global function with example usage: find_categorical_columns(table, column_type_ids) and returns: categorical_ids,  non_categorical_ids, force_categorical_determination