code: def _matrix_adjust(self, X):
          
          data_matrix = X.data if sparse.issparse(X) else X
  
          # Shift all values to specially encode for NAN/infinity/OTHER and 0
          #   Old value       New Value
          #   ---------       ---------
          #   N (0..int_max)  N + 3
          #   np.NaN          2
          #   infinity        2
          #   *other*         1
          #
          # A value of 0 is reserved, as that is specially handled in sparse
          # matrices.
          data_matrix += len(SPARSE_ENCODINGS) + 1
          data_matrix[~np.isfinite(data_matrix)] = SPARSE_ENCODINGS['NAN']
  
          return X
docs: Adjust all values in X to encode for NaNs and infinities in the data.
  
          Parameters
          ----------
          X : array-like, shape=(n_samples, n_feature)
              Input array of type int.
  
          Returns
          -------
          X : array-like, shape=(n_samples, n_feature)
              Input array without any NaNs or infinities.