code: def fit(self, X, y=None):
          
          # Check that X have correct shape
          X = check_array(X)
  
          self._x_min = X.min(axis=0) # axis=0 will find the minimum values ​​by columns (for each feature)
          self._x_max = X.max(axis=0) # axis=0 will find the minimum values ​​by columns (for each feature)
          return self
docs: Find min and max values of every feature.
  
          Parameters
          ----------
          X : {array-like, sparse matrix}, shape (n_samples, n_features)
              The training input samples.
          y : Ignored
              not used, present for API consistency by convention.
  
          Returns
          -------
          self : object