docstr: Check to make sure that the input matrix and its mask of missing
  values are valid. Returns X and missing mask.
docstr_tok: ["Check","to","make","sure","that","the","input","matrix","and","its","mask","of","missing","values","are","valid",".","Returns","X","and","missing","mask","."]
code: def prepare_input_data(self, X):
      """
      Check to make sure that the input matrix and its mask of missing
      values are valid. Returns X and missing mask.
      """
      X = check_array(X, force_all_finite=False)
      if X.dtype != "f" and X.dtype != "d":
          X = X.astype(float)
  
      self._check_input(X)
      missing_mask = np.isnan(X)
      self._check_missing_value_mask(missing_mask)
      return X, missing_mask
  
file_path: fancyimpute/fancyimpute/solver.py
imports: import warnings
  import numpy
  from sklearn.utils import check_array
  from .common import generate_random_column_samples
label_desc: Use image node_id 8 for calling the Solver obj's underlying member method code with example usage: obj.prepare_input_data(X) and returns: X,  missing_mask