code: def _digitize_2d(X, bins, n_samples, n_timestamps):
      X_digit = np.empty((n_samples, n_timestamps))
      for i in prange(n_timestamps):
          X_digit[:, i] = np.digitize(X[:, i], bins[i], right=True)
      return X_digit
  
imports: import numpy
  from numba import njit, prange
  from scipy.stats import norm
  from sklearn.base import BaseEstimator
  from ..base import UnivariateTransformerMixin
  from sklearn.tree import DecisionTreeClassifier
  from sklearn.utils.validation import check_array, check_is_fitted, check_X_y
  from sklearn.utils.multiclass import check_classification_targets
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