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