class_docstr: Iterative estimation of row and column centering/scaling
  using the algorithm from page 31 of:
      Matrix Completion and Low-Rank SVD via Fast Alternating Least Squares
code: def fit(self, X):
      if self.center_columns:
          self.column_centers = np.nanmean(X, axis=0)
      if self.scale_columns:
          self.column_scales = np.nanstd(X, axis=0)
          self.column_scales[self.column_scales == 0] = 1.0
      return self
  
imports: import numpy
label_desc: Use image node_id 2 for calling the Scaler obj's underlying member method code with example usage: obj.fit(X) and returns: self