33 lines
793 B
Python
33 lines
793 B
Python
import numpy as np
|
|
import typing
|
|
|
|
|
|
class MinMaxScaler:
|
|
def __init__(self):
|
|
self.min_vals = None
|
|
self.max_vals = None
|
|
|
|
def fit(self, data: np.ndarray) -> None:
|
|
self.min_vals = np.min(data, axis=0)
|
|
self.max_vals = np.max(data, axis=0)
|
|
|
|
return
|
|
|
|
def transform(self, data: np.ndarray) -> np.ndarray:
|
|
return (data - self.min_vals) / (self.max_vals - self.min_vals)
|
|
|
|
|
|
class StandardScaler:
|
|
def __init__(self):
|
|
self.mean_vals = None
|
|
self.std_vals = None
|
|
|
|
def fit(self, data: np.ndarray) -> None:
|
|
self.mean_vals = np.mean(data, axis=0)
|
|
self.std_vals = np.std(data, axis=0)
|
|
|
|
return
|
|
|
|
def transform(self, data: np.ndarray) -> np.ndarray:
|
|
return (data - self.mean_vals) / self.std_vals
|