class_docstr: Transform features by scaling each feature to a given range.
  
  This estimator scales and translates each feature individually such
  that it is in the given range on the training set, e.g. between
  zero and one.
  
  The transformation is given by::
  
      X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
      X_scaled = X_std * (max - min) + min
  
  where min, max = feature_range.
  
  This transformation is often used as an alternative to zero mean,
  unit variance scaling.
  
  Read more in the :ref:`User Guide <preprocessing_scaler>`.
  
  Parameters
  ----------
  feature_range : tuple (min, max), default=(0, 1)
      Desired range of transformed data.
  
  copy : bool, default=True
      Set to False to perform inplace row normalization and avoid a
      copy (if the input is already a numpy array).
  
  clip: bool, default=False
      Set to True to clip transformed values of held-out data to
      provided `feature range`.
  
  Attributes
  ----------
  min_ : Tensor of shape (n_features,)
      Per feature adjustment for minimum. Equivalent to
      ``min - X.min(axis=0) * self.scale_``
  
  scale_ : Tensor of shape (n_features,)
      Per feature relative scaling of the data. Equivalent to
      ``(max - min) / (X.max(axis=0) - X.min(axis=0))``
  
  data_min_ : ndarray of shape (n_features,)
      Per feature minimum seen in the data
  
  data_max_ : ndarray of shape (n_features,)
      Per feature maximum seen in the data
  
  data_range_ : ndarray of shape (n_features,)
      Per feature range ``(data_max_ - data_min_)`` seen in the data
  
  n_samples_seen_ : int
      The number of samples processed by the estimator.
      It will be reset on new calls to fit, but increments across
      ``partial_fit`` calls.
  
  Examples
  --------
  >>> from mars.learn.preprocessing import MinMaxScaler
  >>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
  >>> scaler = MinMaxScaler()
  >>> print(scaler.fit(data))
  MinMaxScaler()
  >>> print(scaler.data_max_)
  [ 1. 18.]
  >>> print(scaler.transform(data))
  [[0.   0.  ]
   [0.25 0.25]
   [0.5  0.5 ]
   [1.   1.  ]]
  >>> print(scaler.transform([[2, 2]]))
  [[1.5 0. ]]
  
  See Also
  --------
  minmax_scale : Equivalent function without the estimator API.
  
  Notes
  -----
  NaNs are treated as missing values: disregarded in fit, and maintained in
  transform.
  
  For a comparison of the different scalers, transformers, and normalizers,
  see :ref:`examples/preprocessing/plot_all_scaling.py
  <sphx_glr_auto_examples_preprocessing_plot_all_scaling.py>`.
class_docstr_tok: ["Transform","features","by","scaling","each","feature","to","a","given","range",".","This","estimator","scales","and","translates","each","feature","individually","such","that","it","is","in","the","given","range","on","the","training","set",",","e.g",".","between","zero","and","one",".","The","transformation","is","given","by",":",":","X_std","=","(","X","-","X.min","(","axis=0",")",")","\/","(","X.max","(","axis=0",")","-","X.min","(","axis=0",")",")","X_scaled","=","X_std","*","(","max","-","min",")","+","min","where","min",",","max","=","feature_range",".","This","transformation","is","often","used","as","an","alternative","to","zero","mean",",","unit","variance","scaling",".","Read","more","in","the",":","ref",":","`","User","Guide","<","preprocessing_scaler",">","`",".","Parameters","--","--","--","--","--","feature_range",":","tuple","(","min",",","max",")",",","default=","(","0",",","1",")","Desired","range","of","transformed","data",".","copy",":","bool",",","default=True","Set","to","False","to","perform","inplace","row","normalization","and","avoid","a","copy","(","if","the","input","is","already","a","numpy","array",")",".","clip",":","bool",",","default=False","Set","to","True","to","clip","transformed","values","of","held-out","data","to","provided","`","feature","range","`",".","Attributes","--","--","--","--","--","min_",":","Tensor","of","shape","(","n_features",",",")","Per","feature","adjustment","for","minimum",".","Equivalent","to","``","min","-","X.min","(","axis=0",")","*","self.scale_","``","scale_",":","Tensor","of","shape","(","n_features",",",")","Per","feature","relative","scaling","of","the","data",".","Equivalent","to","``","(","max","-","min",")","\/","(","X.max","(","axis=0",")","-","X.min","(","axis=0",")",")","``","data_min_",":","ndarray","of","shape","(","n_features",",",")","Per","feature","minimum","seen","in","the","data","data_max_",":","ndarray","of","shape","(","n_features",",",")","Per","feature","maximum","seen","in","the","data","data_range_",":","ndarray","of","shape","(","n_features",",",")","Per","feature","range","``","(","data_max_","-","data_min_",")","``","seen","in","the","data","n_samples_seen_",":","int","The","number","of","samples","processed","by","the","estimator",".","It","will","be","reset","on","new","calls","to","fit",",","but","increments","across","``","partial_fit","``","calls",".","Examples","--","--","--","--",">",">",">","from","mars.learn.preprocessing","import","MinMaxScaler",">",">",">","data","=","[","[","-1",",","2","]",",","[","-0.5",",","6","]",",","[","0",",","10","]",",","[","1",",","18","]","]",">",">",">","scaler","=","MinMaxScaler","(",")",">",">",">","print","(","scaler.fit","(","data",")",")","MinMaxScaler","(",")",">",">",">","print","(","scaler.data_max_",")","[","1",".","18",".","]",">",">",">","print","(","scaler.transform","(","data",")",")","[","[","0",".","0",".","]","[","0.25","0.25","]","[","0.5","0.5","]","[","1",".","1",".","]","]",">",">",">","print","(","scaler.transform","(","[","[","2",",","2","]","]",")",")","[","[","1.5","0",".","]","]","See","Also","--","--","--","--","minmax_scale",":","Equivalent","function","without","the","estimator","API",".","Notes","--","--","-","NaNs","are","treated","as","missing","values",":","disregarded","in","fit",",","and","maintained","in","transform",".","For","a","comparison","of","the","different","scalers",",","transformers",",","and","normalizers",",","see",":","ref",":","`","examples\/preprocessing\/plot_all_scaling.py","<","sphx_glr_auto_examples_preprocessing_plot_all_scaling.py",">","`","."]
code: def _more_tags(self):  # pylint: disable=no-self-use
      return {"allow_nan": True}
  
file_path: mars/mars/learn/preprocessing/_data.py
imports: import numpy
  from sklearn.base import TransformerMixin
  from sklearn.utils.validation import check_is_fitted, FLOAT_DTYPES
  from ...None import tensor
  from ...tensor.core import TENSOR_TYPE
  from ..base import BaseEstimator
  from ..utils.validation import check_array
label_desc: Use image node_id 7 for calling the MinMaxScaler obj's underlying member method code with example usage: obj._more_tags() and returns: dict