code: def gather(data, axis, indices):
      """Gather values along given axis from given indices.
  
      E.g. for a 3D tensor, output is computed as:
  
      .. code-block:: python
  
          out[i][j][k] = data[indices[i][j][k]][j][k]  # if axis == 0
          out[i][j][k] = data[i][indices[i][j][k]][k]  # if axis == 1
          out[i][j][k] = data[i][j][indices[i][j][k]]  # if axis == 2
  
      ``indices`` must have the same shape as ``data``, except at dimension ``axis``
      which must just be not null. Output will have the same shape as ``indices``.
  
      Parameters
      ----------
      data : relay.Expr
          The input data to the operator.
  
      axis : int
          The axis along which to index. Negative axis is supported.
  
      indices : relay.Expr
          The indices of values to gather.
  
      Examples
      --------
      .. code-block:: python
  
          data = [[1, 2], [3, 4]]
          axis = 1
          indices = [[0, 0], [1, 0]]
          relay.gather(data, axis, indices) = [[1, 1], [4, 3]]
      """
      return _make.gather(data, axis, indices)
  
imports: from ...tir import expr
  from ..expr import Constant, Expr, Tuple, TupleWrapper, const
  from .None import _make
  from .dyn import _make
  from .tensor import shape_of
label_desc: Use image node_id 33 for calling a global function with example usage: gather(data, axis, indices) and returns: _make