class_docstr: An abstract base class for a model for which data consists of a
  features matrix and a labels vector, namely for (one-class
  supervised learning)
  
  Attributes
  ----------
  features : `numpy.ndarray`, shape=(n_samples, n_features) (read-only)
      The features matrix
  
  labels : `numpy.ndarray`, shape=(n_samples,)  (read-only)
      The labels vector
  
  n_samples : `int`  (read-only)
      Number of samples
  
  n_features : `int` (read-only)
      Number of features
  
  dtype : `{'float64', 'float32'}`
      Type of the data arrays used.
  
  Notes
  -----
  This class should be not used by end-users, it is intended for
  development only.
code: def astype(self, dtype_or_object_with_dtype):
      import tick.base.dtype_to_cpp_type
  
      new_model = tick.base.dtype_to_cpp_type.copy_with(
          self, ["_model", "features", "labels"]  # ignore on deepcopy
      )
      new_dtype = tick.base.dtype_to_cpp_type.extract_dtype(
          dtype_or_object_with_dtype
      )
      if self.features is not None:
          new_model._set("features", self.features.astype(new_dtype))
      if self.labels is not None:
          new_model._set("labels", self.labels.astype(new_dtype))
      new_model._set(
          "_model",
          new_model._build_cpp_model(dtype_or_object_with_dtype),
      )
      return new_model
  
file_path: tick/tick/base_model/model_labels_features.py
imports: import numpy
  from .None import Model
  from tick.preprocessing.utils import safe_array
label_desc: Use image node_id 4 for calling the ModelLabelsFeatures obj's underlying member method code with example usage: obj.astype(dtype_or_object_with_dtype) and returns: new_model