code: def axis_slice(a, start=None, stop=None, step=None, axis=-1):
      """Take a slice along axis 'axis' from 'a'.
  
      Parameters
      ----------
      a : cupy.ndarray
          The array to be sliced.
      start, stop, step : int or None
          The slice parameters.
      axis : int, optional
          The axis of `a` to be sliced.
  
      Examples
      --------
      >>> a = array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
      >>> axis_slice(a, start=0, stop=1, axis=1)
      array([[1],
             [4],
             [7]])
      >>> axis_slice(a, start=1, axis=0)
      array([[4, 5, 6],
             [7, 8, 9]])
  
      Notes
      -----
      The keyword arguments start, stop and step are used by calling
      slice(start, stop, step). This implies axis_slice() does not
      handle its arguments the exactly the same as indexing. To select
      a single index k, for example, use
          axis_slice(a, start=k, stop=k+1)
      In this case, the length of the axis 'axis' in the result will
      be 1; the trivial dimension is not removed. (Use cupy.squeeze()
      to remove trivial axes.)
      """
      a_slice = [slice(None)] * a.ndim
      a_slice[axis] = slice(start, stop, step)
      b = a[tuple(a_slice)]
      return b
  
file_path: cupy/cupyx/scipy/signal/_arraytools.py
imports: import cupy
label_desc: Use image node_id 1 for calling a global function with example usage: axis_slice(a, start, stop, step, axis) and returns: b