code: def unstack(
      x: np.ndarray,
      /,
      *,
      copy: Optional[bool] = None,
      axis: int = 0,
      keepdims: bool = False,
  ) -> List[np.ndarray]:
      if x.shape == ():
          return [x]
      x_split = None
      if copy:
          newarr = x.copy()
          x_split = np.split(newarr, newarr.shape[axis], axis)
      else:
          x_split = np.split(x, x.shape[axis], axis)
      if keepdims:
          return x_split
      return [np.squeeze(item, axis) for item in x_split]
  
imports: import math
  from numbers import Number
  from typing import Union, Tuple, Optional, List, Sequence
  import numpy
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
label_desc: Use image node_id 16 for calling a global function with example usage: unstack() and returns: unknown, list, x_split