Feature Scaling & Normalization Calculator
Paste a column of numbers and instantly rescale it four ways, Min-Max normalization, Z-score standardization, MaxAbs, and Robust scaling, using the exact scikit-learn formulas, with every fitted parameter shown so you can check the arithmetic by hand.
How it works
Feature scaling puts columns that live on different numeric ranges onto a common footing so that distance- and gradient-based models, k-nearest neighbours, SVMs, k-means, PCA, and neural nets, are not dominated by whichever feature happens to have the largest units. This calculator fits and applies the four transforms defined in the scikit-learn preprocessing guide to a single feature vector X = [x₁, …, xₙ].
- Min-Max normalization (
MinMaxScaler):x_std = (xᵢ − min) / (max − min), then map to a target range[a, b]withx_scaled = x_std · (b − a) + a. The default range [0, 1] reduces tox_std. A constant feature (max = min) maps to the range minimuma. - Z-score standardization (
StandardScaler):x_scaled = (xᵢ − μ) / σ, with meanμ = (1/n)·Σxᵢ. scikit-learn uses the population standard deviationσ = √((1/n)·Σ(xᵢ − μ)²)(ddof = 0). A sample-basis toggle switches the divisor ton − 1. Zero variance yields 0 for every element. - MaxAbs scaling (
MaxAbsScaler):x_scaled = xᵢ / max(|X|). It maps data into [−1, 1] without shifting the centre, which preserves sparsity (zeros stay zero). If the largest magnitude is 0, the output is 0. - Robust scaling (
RobustScaler):x_scaled = (xᵢ − median) / IQR, whereIQR = Q3 − Q1. Quartiles use linear interpolation (the NumPy default): for a sorted array the p-th quantile sits at positionh = (n − 1)·pand is interpolated between neighbouring points. Because it uses the median and IQR, outliers barely affect it.
The fitted parameters panel shows every number the scalers depend on, min, max, range, mean, standard deviation, median, Q1, Q3, IQR, and maximum absolute value, so each output can be reproduced by hand. As a correctness check, the population standard deviation is computed two algebraically independent ways: the sum of squared deviations, and the moment identity Var = E[X²] − (E[X])². When they agree, the panel shows a “σ verified” badge.
Worked examples
Frequently asked questions
Sources & references
- scikit-learn: Preprocessing data (Min-Max, Standard, MaxAbs, Robust scaling)
- scikit-learn: StandardScaler API (population std, ddof = 0)
- scikit-learn: RobustScaler API (median / IQR)
- NumPy: percentile (default linear interpolation)
- NIST/SEMATECH e-Handbook §1.3.5.5: standardization (z-score)
Formulas and edge-case behaviour were last cross-checked against the scikit-learn documentation on 2026-07-13. Both worked examples were reconciled by hand and against scikit-learn's fit_transform output.
Related tools
Comments & feedback
Spotted a bug or want an improvement? Tell us, our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a bug, edge case, or want another scaler added?
Email me at [email protected] , most fixes ship within 24 hours.