Skip to content

Instantly share code, notes, and snippets.

@marskar
Created May 15, 2020 19:38
Show Gist options
  • Save marskar/e704be99b1564b8aaecd4fe19f74e379 to your computer and use it in GitHub Desktop.
Save marskar/e704be99b1564b8aaecd4fe19f74e379 to your computer and use it in GitHub Desktop.
A simple Python class to min-max scale sequences of numbers.
from typing import Tuple, List
class MinMaxScaler:
def __init__(self, values: Tuple) -> List:
self.values = values
self.min_val = min(values)
self.max_val = max(values)
self.max_min_diff = self.max_val - self.min_val
def min_max_scale(self, x: Tuple):
return [(x_i - self.min_val) / self.max_min_diff for x_i in x]
def inverse_min_max_scale(self, x: Tuple):
return [x_i * self.max_min_diff + self.min_val for x_i in x]
if __name__ == '__main__':
original_values = 5, 8, 12
mms = MinMaxScaler(original_values)
scaled_values = mms.min_max_scale(mms.values)
scaled_values # [0.0, 0.42857142857142855, 1.0]
mms.inverse_min_max_scale(scaled_values) # [5.0, 8.0, 12.0]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment