class_docstr: Base class for merging a number of OutputData from one or several parent nodes
  into a single InputData for the next level node in the computation graph.
  
  Main method of the interface is `merge` that delegates merge stages to other methods.
  Merge process can be customized for data types by overriding these methods, primarily:
  `merge_targets`, `preprocess_predicts`, `merge_predicts`, `postprocess_predicts'.
  
  :param outputs: list with OutputData from parent nodes for merging
class_docstr_tok: ["Base","class","for","merging","a","number","of","OutputData","from","one","or","several","parent","nodes","into","a","single","InputData","for","the","next","level","node","in","the","computation","graph",".","Main","method","of","the","interface","is","`","merge","`","that","delegates","merge","stages","to","other","methods",".","Merge","process","can","be","customized","for","data","types","by","overriding","these","methods",",","primarily",":","`","merge_targets","`",",","`","preprocess_predicts","`",",","`","merge_predicts","`",",","`","postprocess_predicts","'",".",":","param","outputs",":","list","with","OutputData","from","parent","nodes","for","merging"]
code: def merge_targets(self) -> np.array:
      filtered_main_target = self.main_output.target
      # if target has the same form as index
      #  then it makes sense to extract target with common indices
      if filtered_main_target is not None and len(
          self.main_output.idx
      ) == len(filtered_main_target):
          filtered_main_target = self.select_common(
              self.main_output.idx, filtered_main_target
          )
      return filtered_main_target
  
imports: from typing import List, Iterable, Union, Optional
  import numpy
  from golem.core.log import default_log
  from golem.utilities.data_structures import are_same_length
  from fedot.core.data.array_utilities import find_common_elements, atleast_2d, atleast_4d, flatten_extra_dim
  from fedot.core.data.data import OutputData, InputData
  from fedot.core.data.merge.supplementary_data_merger import SupplementaryDataMerger
  from fedot.core.repository.dataset_types import DataTypesEnum
label_desc: Use image node_id 5 for calling the DataMerger obj's underlying member method code with example usage: obj.merge_targets() and returns: filtered_main_target