code: def _determine_min_cols(feature_names=None, feature_types=None):
      if feature_types is None:
          return None if feature_names is None else len(feature_names)
      else:
          n_ignored = sum(
              1
              for feature_type in feature_types
              if feature_type == "ignore"
          )
          if (
              feature_names is None
              or len(feature_names) == len(feature_types)
              or len(feature_names) == len(feature_types) - n_ignored
          ):
              return len(feature_types) - n_ignored
          else:
              msg = f"feature_names has length {len(feature_names)} which does not match the length of feature_types {len(feature_types)}"
              _log.error(msg)
              raise ValueError(msg)
  
imports: from collections import Counter
  from itertools import count
  import numpy
  import numpy.ma
  import logging
label_desc: Use image node_id 14 for calling a global function with example usage: _determine_min_cols(feature_names, feature_types) and returns: unknown, unknown