class_docstr: Base class for all imputers.
  
  It adds automatically support for `add_indicator`.
class_docstr_tok: ["Base","class","for","all","imputers",".","It","adds","automatically","support","for","`","add_indicator","`","."]
docstr: Concatenate indicator mask with the imputed data.
docstr_tok: ["Concatenate","indicator","mask","with","the","imputed","data","."]
code: def _concatenate_indicator(self, X_imputed, X_indicator):
      """Concatenate indicator mask with the imputed data."""
      if not self.add_indicator:
          return X_imputed
  
      hstack = (
          sparse.hstack if sparse.issparse(X_imputed) else np.hstack
      )
      if X_indicator is None:
          raise ValueError(
              "Data from the missing indicator are not provided. Call "
              "_fit_indicator and _transform_indicator in the imputer "
              "implementation."
          )
  
      return hstack((X_imputed, X_indicator))
  
imports: from ....internals import _deprecate_pos_args
  from ....common.array_descriptor import CumlArrayDescriptor
  from ....internals.array_sparse import SparseCumlArray
  from ..utils.validation import FLOAT_DTYPES
  from ..utils.validation import check_is_fitted
  from cuml.internals.mixins import AllowNaNTagMixin, SparseInputTagMixin, StringInputTagMixin
  from ..utils.skl_dependencies import BaseEstimator, TransformerMixin
  from ....thirdparty_adapters import _get_mask, _masked_column_median, _masked_column_mean, _masked_column_mode
  from cuml.internals.safe_imports import gpu_only_import_from
  import cuml
  from cuml.internals.safe_imports import gpu_only_import
  import numbers
  import warnings
  from cuml.internals.safe_imports import cpu_only_import
label_desc: Use image node_id 4 for calling the _BaseImputer obj's underlying member method code with example usage: obj._concatenate_indicator(X_imputed, X_indicator) and returns: hstack, X_imputed