code: def combine(data_list):
      item = data_list[0]
      if isinstance(item, dict):
          res = {}
          for k, v in item.items():
              res[k] = np.concatenate(
                  [data[k] for data in data_list], axis=0
              )
      elif isinstance(item, list) or isinstance(item, tuple):
          res = []
          for i in range(len(data_list[0])):
              res.append(
                  np.concatenate(
                      [data[i] for data in data_list], axis=0
                  )
              )
          if isinstance(item, tuple):
              res = tuple(res)
      elif isinstance(data_list[0], np.ndarray):
          res = np.concatenate(data_list, axis=0)
      else:
          raise ValueError(
              "value of x and y should be an ndarray, a dict of ndarrays, a tuple of ndarrays"
              " or a list of ndarrays, please check your input"
          )
      return res
  
imports: import os
  import numpy
  from zoo.common import get_file_list
  from zoo.util.utils import convert_row_to_numpy
label_desc: Use image node_id 6 for calling a global function with example usage: combine(data_list) and returns: res