class_docstr: Select an array element from a given axis or set of axes.
code: def backward(self, indexes, gy):
      x = self.get_retained_inputs()[0]
      y = self.get_retained_outputs()[0]
  
      if self.axis is None:
          axis = range(x.ndim)
      else:
          axis = [ax % x.ndim for ax in self.axis]
  
      # Add broadcastable dimensions to y and gy
      # for each one that was reduced in the forward operation
      shape = [
          s if ax not in axis else 1 for ax, s in enumerate(x.shape)
      ]
      gy = gy[0].reshape(shape)
      y = y.reshape(shape)
  
      # Compute the gradient
      cond = x.data == y.data
      gy = chainer.functions.broadcast_to(gy, cond.shape)
      return (gy * cond,)
  
imports: import numpy
  import six
  from chainer import backend
  from chainer import function_node
  import chainer.functions
  import chainer.utils
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 5 for calling the SelectorBase obj's underlying member method code with example usage: obj.backward(indexes, gy) and returns: unknown