code: def _digitize_2d(X, bins, n_samples, n_timestamps):
      X_digit = np.empty((n_samples, n_timestamps))
      for i in prange(n_samples):
          X_digit[i] = np.searchsorted(bins[i], X[i], side="left")
      return X_digit
  
imports: import numpy
  from numba import njit, prange
  from numba.typed import List
  from scipy.stats import norm
  from sklearn.base import BaseEstimator
  from sklearn.utils.validation import check_array
  from warnings import warn
  from ..base import UnivariateTransformerMixin
label_desc: Use image node_id 3 for calling a global function with example usage: _digitize_2d(X, bins, n_samples, n_timestamps) and returns: X_digit