code: def separate(x, axis=0):
      """Separates an array along a given axis.
  
      This function separates an array along a given axis. For example, shape of
      an array is ``(2, 3, 4)``. When it separates the array with ``axis=1``, it
      returns three ``(2, 4)`` arrays.
  
      This function is an inverse of :func:`chainer.functions.stack`.
  
      Args:
          x (:class:`~chainer.Variable` or :ref:`ndarray`):
              Variable to be separated.
              A :math:`(s_1, s_2, ..., s_N)` -shaped float array.
          axis (int): Axis along which variables are separated.
  
      Returns:
          tuple of chainer.Variable: Output variables.
  
      .. seealso:: :func:`chainer.functions.stack`
  
      .. admonition:: Example
  
          >>> x = np.arange(6).reshape((2, 3)).astype(np.float32)
          >>> x
          array([[0., 1., 2.],
                 [3., 4., 5.]], dtype=float32)
          >>> x.shape
          (2, 3)
          >>> y = F.separate(x) # split along axis=0
          >>> isinstance(y, tuple)
          True
          >>> len(y)
          2
          >>> y[0].shape
          (3,)
          >>> y[0].array
          array([0., 1., 2.], dtype=float32)
          >>> y = F.separate(x, axis=1)
          >>> len(y)
          3
          >>> y[0].shape
          (2,)
          >>> y[0].array
          array([0., 3.], dtype=float32)
  
      """
      return Separate(axis).apply((x,))
  
file_path: chainer/chainer/functions/array/separate.py
imports: from chainer import backend
  from chainer import function_node
  from chainer.functions.array import stack
  from chainer.utils import type_check
label_desc: Use image node_id 1 for calling a global function with example usage: separate(x, axis) and returns: Separate