code: def unison_shuffled_copies(
      a: List[T], b: List[T]
  ) -> Union[Tuple[List[T], ...], Tuple[np.ndarray, ...]]:
      """
      Union shuffle two arrays
      Args:
          a:
          b:
  
      Returns:
  
      """
      data_type = type(a)
      assert len(a) == len(b)
      c = list(zip(a, b))
      random.shuffle(c)
      a, b = zip(*c)
      if data_type == np.ndarray:
          return np.array(a), np.array(b)
      return list(a), list(b)
  
imports: import random
  from typing import List, Union, TypeVar, Tuple
  import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: unison_shuffled_copies(a, b) and returns: list,  list, np,  np