code: def _run(self, data, axes=None, keepdims=1, noop_with_empty_axes=0):  # type: ignore
      if self.is_axes_empty(axes) and noop_with_empty_axes:  # type: ignore
          return (data,)
  
      axes = self.handle_axes(axes)
      keepdims = keepdims != 0  # type: ignore
  
      if data.size == 0:
          return self.reduce_constant(data, -np.inf, axes, keepdims)
  
      res = np.sum(data, axis=axes, keepdims=keepdims)
      if len(res.shape) > 0:
          return (np.log(res, out=res),)
      return (np.log(res),)
  
file_path: onnx/onnx/reference/ops/op_reduce_log_sum.py
imports: import numpy
  from onnx.reference.ops._op import OpRunReduceNumpy
label_desc: Use image node_id 1 for calling the ReduceLogSum_18 obj's underlying member method code with example usage: obj._run(data, axes, keepdims, noop_with_empty_axes) and returns: np, data, self, np