code: def input_to_host_array(
      X,
      order="F",
      deepcopy=False,
      check_dtype=False,
      convert_to_dtype=False,
      check_cols=False,
      check_rows=False,
      fail_on_order=False,
      force_contiguous=True,
      fail_on_null=True,
  ) -> cuml_array:
      """
      Identical to input_to_cuml_array but it returns a host (NumPy array instead
      of CumlArray
      """
      if not fail_on_null and isinstance(
          X, (CudfDataFrame, CudfSeries)
      ):
          try:
              X = X.values
          except ValueError:
              X = X.astype("float64", copy=False)
              X.fillna(cp.nan, inplace=True)
              X = X.values
  
      out_data = input_to_cuml_array(
          X,
          order=order,
          deepcopy=deepcopy,
          check_dtype=check_dtype,
          convert_to_dtype=convert_to_dtype,
          check_cols=check_cols,
          check_rows=check_rows,
          fail_on_order=fail_on_order,
          force_contiguous=force_contiguous,
          convert_to_mem_type=MemoryType.host,
      )
  
      return out_data._replace(array=out_data.array.to_output("numpy"))
  
file_path: cuml/python/cuml/internals/input_utils.py
imports: from collections import namedtuple
  from cuml.internals.array import CumlArray
  from cuml.internals.array_sparse import SparseCumlArray
  from cuml.internals.global_settings import GlobalSettings
  from cuml.internals.mem_type import MemoryType
  from cuml.internals.safe_imports import cpu_only_import, cpu_only_import_from, gpu_only_import, gpu_only_import_from, safe_import, safe_import_from, null_decorator, return_false, UnavailableError
label_desc: Use image node_id 8 for calling a global function with example usage: input_to_host_array(X, order, deepcopy, check_dtype, convert_to_dtype, check_cols, check_rows, fail_on_order, force_contiguous, fail_on_null) and returns: out_data