code: def ifftshift(x, axes=None):
      """
      The inverse of `fftshift`. Although identical for even-length `x`, the
      functions differ by one sample for odd-length `x`.
  
      Parameters
      ----------
      x : array_like
          Input tensor.
      axes : int or shape tuple, optional
          Axes over which to calculate.  Defaults to None, which shifts all axes.
  
      Returns
      -------
      y : Tensor
          The shifted tensor.
  
      See Also
      --------
      fftshift : Shift zero-frequency component to the center of the spectrum.
  
      Examples
      --------
      >>> import mars.tensor as mt
  
      >>> freqs = mt.fft.fftfreq(9, d=1./9).reshape(3, 3)
      >>> freqs.execute()
      array([[ 0.,  1.,  2.],
             [ 3.,  4., -4.],
             [-3., -2., -1.]])
      >>> mt.fft.ifftshift(mt.fft.fftshift(freqs)).execute()
      array([[ 0.,  1.,  2.],
             [ 3.,  4., -4.],
             [-3., -2., -1.]])
  
      """
      x = astensor(x)
      dtype = np.fft.ifftshift(
          np.empty((1,) * max(1, x.ndim), dtype=x.dtype)
      ).dtype
      axes = TensorIFFTShift._process_axes(x, axes)
      op = TensorIFFTShift(axes=axes, dtype=dtype)
      return op(x)
  
file_path: mars/mars/tensor/fft/ifftshift.py
imports: import numpy
  from ...None import opcodes
  from ..datasource import tensor
  from .core import TensorFFTShiftMixin, TensorFFTShiftBase
label_desc: Use image node_id 1 for calling a global function with example usage: ifftshift(x, axes) and returns: op