code: def _parallel_ecdf(n_dims, X):
      """Private method to calculate ecdf in parallel.
      Parameters
      ----------
      n_dims : int
          The number of dimensions of the current input matrix
  
      X : numpy array
          The subarray for building the ECDF
  
      Returns
      -------
      U_l_mat : numpy array
          ECDF subarray.
  
      U_r_mat : numpy array
          ECDF subarray.
      """
      U_l_mat = np.zeros([X.shape[0], n_dims])
      U_r_mat = np.zeros([X.shape[0], n_dims])
  
      for i in range(n_dims):
          U_l_mat[:, i : i + 1] = column_ecdf(X[:, i : i + 1])
          U_r_mat[:, i : i + 1] = column_ecdf(X[:, i : i + 1] * -1)
      return U_l_mat, U_r_mat
  
file_path: pyod/pyod/models/ecod.py
imports: from __future__ import division
  from __future__ import print_function
  import warnings
  import matplotlib.pyplot
  import numpy
  from joblib import Parallel, delayed
  from scipy.stats import skew
  from sklearn.utils import check_array
  from .base import BaseDetector
  from .sklearn_base import _partition_estimators
  from ..utils.stat_models import column_ecdf
label_desc: Use image node_id 2 for calling a global function with example usage: _parallel_ecdf(n_dims, X) and returns: U_l_mat,  U_r_mat