class_docstr: Transform features in parallel as the union of many pipeline steps.
  
  This step is also available with true parallel processing threads or
  processes in the streaming package of Neuraxle.
  
  
  .. code-block:: python
  
      p = Pipeline([
          FeatureUnion([
              Mean(),
              Std(),
          ], joiner=NumpyConcatenateInnerFeatures())
      ])
  
      data_inputs = np.random.randint((1, 20))
  
  .. seealso::
      :class:`ModelStacking`,
      :class:`AddFeatures`,
      :class:`~neuraxle.base.ForceHandleOnlyMixin`,
      :class:`~neuraxle.base.TruncableSteps`,
      :class:`~neuraxle.base.BaseStep`
class_docstr_tok: ["Transform","features","in","parallel","as","the","union","of","many","pipeline","steps",".","This","step","is","also","available","with","true","parallel","processing","threads","or","processes","in","the","streaming","package","of","Neuraxle",".","..","code-block",":",":","python","p","=","Pipeline","(","[","FeatureUnion","(","[","Mean","(",")",",","Std","(",")",",","]",",","joiner=NumpyConcatenateInnerFeatures","(",")",")","]",")","data_inputs","=","np.random.randint","(","(","1",",","20",")",")","..","seealso",":",":",":","class",":","`","ModelStacking","`",",",":","class",":","`","AddFeatures","`",",",":","class",":","`","~neuraxle.base.ForceHandleOnlyMixin","`",",",":","class",":","`","~neuraxle.base.TruncableSteps","`",",",":","class",":","`","~neuraxle.base.BaseStep","`"]
code: def _did_transform(self, data_container, context):
      data_container = self[-1].handle_transform(
          data_container, context
      )
      return data_container
  
imports: from typing import Tuple
  from joblib import Parallel, delayed
  from neuraxle.base import CX, DACT, BaseStep, BaseTransformer, ForceHandleOnlyMixin, Identity, NamedStepsList, NonFittableMixin, TruncableSteps, _TruncableServiceWithBodyMixin
  from neuraxle.data_container import ZipDataContainer
  from neuraxle.steps.numpy import NumpyConcatenateInnerFeatures
label_desc: Use image node_id 4 for calling the FeatureUnion obj's underlying member method code with example usage: obj._did_transform(data_container, context) and returns: data_container