code: def best_cast(sequence, coltype=None):
      """Return the best cast (integer, float or string) of the sequence
  
      sequence - a sequence of strings
  
      Try casting all elements to integer and float, returning a numpy
      array of values. If all fail, return a numpy array of strings.
      """
      if isinstance(coltype, str) and coltype.startswith(
          COLTYPE_VARCHAR
      ):
          # Cast columns already defined as strings as same
          return numpy.array(sequence)
  
      def fn(x, y):
          if COLTYPE_VARCHAR in (x, y):
              return COLTYPE_VARCHAR
          if COLTYPE_FLOAT in (x, y):
              return COLTYPE_FLOAT
          return COLTYPE_INTEGER
  
      ldtype = functools.reduce(
          fn,
          [get_loaddata_type(x) for x in sequence],
          COLTYPE_INTEGER,
      )
      if ldtype == COLTYPE_VARCHAR:
          return numpy.array(sequence)
      elif ldtype == COLTYPE_FLOAT:
          return numpy.array(sequence, numpy.float64)
      else:
          return numpy.array(sequence, numpy.int32)
  
file_path: CellProfiler/src/subpackages/core/cellprofiler_core/utilities/core/modules/load_data.py
imports: import functools
  import numpy
  from cellprofiler_core.constants.measurement import C_PATH_NAME, C_FILE_NAME, C_URL, C_OBJECTS_FILE_NAME, C_OBJECTS_PATH_NAME, C_OBJECTS_URL, COLTYPE_VARCHAR, COLTYPE_FLOAT, COLTYPE_INTEGER
label_desc: Use image node_id 14 for calling a global function with example usage: best_cast(sequence, coltype) and returns: numpy, COLTYPE_INTEGER, numpy, COLTYPE_VARCHAR, COLTYPE_FLOAT, numpy, numpy