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.