code: def minmax_scaling(array, columns, min_val=0, max_val=1):
      """Min max scaling of pandas' DataFrames.
  
      Parameters
      ----------
      array : pandas DataFrame or NumPy ndarray, shape = [n_rows, n_columns].
      columns : array-like, shape = [n_columns]
          Array-like with column names, e.g., ['col1', 'col2', ...]
          or column indices [0, 2, 4, ...]
      min_val : `int` or `float`, optional (default=`0`)
          minimum value after rescaling.
      max_val : `int` or `float`, optional (default=`1`)
          maximum value after rescaling.
  
      Returns
      ----------
      df_new : pandas DataFrame object.
          Copy of the array or DataFrame with rescaled columns.
  
      Examples
      ----------
      For usage examples, please see
      https://rasbt.github.io/mlxtend/user_guide/preprocessing/minmax_scaling/
  
      """
      ary_new = array.astype(float)
      if len(ary_new.shape) == 1:
          ary_new = ary_new[:, np.newaxis]
  
      if isinstance(ary_new, pd.DataFrame):
          ary_newt = ary_new.loc
      elif isinstance(ary_new, np.ndarray):
          ary_newt = ary_new
      else:
          raise AttributeError(
              "Input array must be a pandas" "DataFrame or NumPy array"
          )
  
      numerator = ary_newt[:, columns] - ary_newt[:, columns].min(
          axis=0
      )
      denominator = ary_newt[:, columns].max(axis=0) - ary_newt[
          :, columns
      ].min(axis=0)
      ary_newt[:, columns] = numerator / denominator
  
      if not min_val == 0 and not max_val == 1:
          ary_newt[:, columns] = (
              ary_newt[:, columns] * (max_val - min_val) + min_val
          )
  
      return ary_newt[:, columns]
  
imports: import numpy
  import pandas
label_desc: Use image node_id 1 for calling a global function with example usage: minmax_scaling(array, columns, min_val, max_val) and returns: ary_newt