code: def execute_map(cls, ctx, op):
      (x,), device_id, xp = as_same_device(
          [ctx[c.key] for c in op.inputs], op.device, ret_extra=True
      )
  
      axis = cls.get_arg_axis(op.axis, op.inputs[0].ndim)
      keepdims = op.keepdims
      with device(device_id):
          nz = xp.count_nonzero(x, axis=axis)
          if keepdims:
              slcs = [slice(None)] * op.inputs[0].ndim
              for ax in op.axis:
                  slcs[ax] = np.newaxis
              nz = xp.asarray(nz)[tuple(slcs)]
  
          ctx[op.outputs[0].key] = nz
  
file_path: mars/mars/tensor/reduction/count_nonzero.py
imports: import numpy
  from ...None import opcodes
  from ..array_utils import device, as_same_device
  from .sum import TensorSum
  from .core import TensorReduction, TensorReductionMixin
label_desc: Use image node_id 2 for calling the TensorCountNonzero obj's underlying member method code with example usage: obj.execute_map(cls, ctx, op) without return types