code: def expand_dims(a, axis):
      """
      Expand the shape of a tensor.
  
      Insert a new axis that will appear at the `axis` position in the expanded
      array shape.
  
      Parameters
      ----------
      a : array_like
          Input tensor.
      axis : int
          Position in the expanded axes where the new axis is placed.
  
      Returns
      -------
      res : Tensor
          Output tensor. The number of dimensions is one greater than that of
          the input tensor.
  
      See Also
      --------
      squeeze : The inverse operation, removing singleton dimensions
      reshape : Insert, remove, and combine dimensions, and resize existing ones
      doc.indexing, atleast_1d, atleast_2d, atleast_3d
  
      Examples
      --------
      >>> import mars.tensor as mt
  
      >>> x = mt.array([1,2])
      >>> x.shape
      (2,)
  
      The following is equivalent to ``x[mt.newaxis,:]`` or ``x[mt.newaxis]``:
  
      >>> y = mt.expand_dims(x, axis=0)
      >>> y.execute()
      array([[1, 2]])
      >>> y.shape
      (1, 2)
  
      >>> y = mt.expand_dims(x, axis=1)  # Equivalent to x[:,mt.newaxis]
      >>> y.execute()
      array([[1],
             [2]])
      >>> y.shape
      (2, 1)
  
      Note that some examples may use ``None`` instead of ``np.newaxis``.  These
      are the same objects:
  
      >>> mt.newaxis is None
      True
  
      """
      a = astensor(a)
  
      if axis > a.ndim or axis < -a.ndim - 1:
          raise np.AxisError(
              f"Axis must be between -{a.ndim + 1} and {a.ndim}, got {axis}"
          )
  
      axis = axis if axis >= 0 else axis + a.ndim + 1
      indexes = (
          (slice(None),) * axis
          + (np.newaxis,)
          + (slice(None),) * (a.ndim - axis)
      )
      return a[indexes]
  
label_desc: Use image node_id 1 for calling a global function with example usage: expand_dims(a, axis) and returns: a