code: def _run(self, x, indices, axis=None):  # type: ignore
      if not x.flags["C_CONTIGUOUS"]:
          x = np.ascontiguousarray(x)
      if not indices.flags["C_CONTIGUOUS"]:
          indices = indices.ascontiguousarray()
      if indices.size == 0:
          return (np.empty((0,), dtype=x.dtype),)
      try:
          return (np.take(x, indices, axis=axis),)
      except TypeError:
          # distribution x86 requires int32.
          return (np.take(x, indices.astype(int), axis=axis),)
  
imports: import numpy
  from onnx.reference.op_run import OpRun
label_desc: Use image node_id 1 for calling the Gather obj's underlying member method code with example usage: obj._run(x, indices, axis) and returns: np, np, np