code: def iqr(x1, x2, axis=0):
      """
      Interquartile range of error
  
      Parameters
      ----------
      x1 : array_like
         One of the inputs into the IQR calculation.
      x2 : array_like
         The other input into the IQR calculation.
      axis : {None, int}
         axis along which the summary statistic is calculated
  
      Returns
      -------
      irq : {float, ndarray}
         Interquartile range along given axis.
  
      Notes
      -----
      If ``x1`` and ``x2`` have different shapes, then they must broadcast.
      """
      x1 = array_like(x1, "x1", dtype=None, ndim=None)
      x2 = array_like(x2, "x1", dtype=None, ndim=None)
      if axis is None:
          x1 = x1.ravel()
          x2 = x2.ravel()
          axis = 0
      xdiff = np.sort(x1 - x2, axis=axis)
      nobs = x1.shape[axis]
      idx = np.round((nobs - 1) * np.array([0.25, 0.75])).astype(int)
      sl = [slice(None)] * xdiff.ndim
      sl[axis] = idx
      iqr = np.diff(xdiff[tuple(sl)], axis=axis)
      iqr = np.squeeze(iqr)  # drop reduced dimension
      return iqr
  
imports: import numpy
  from statsmodels.tools.validation import array_like
label_desc: Use image node_id 11 for calling a global function with example usage: iqr(x1, x2, axis) and returns: iqr