InfyCalculator
➗

Min-Max Normalization Calculator: rescale data to 0–1 or any range

Rescale a list of numbers to 0–1, 0–100, −1 to 1 or any range with min-max normalization, using the data’s own min and max or fixed bounds. Normalize or reverse a single value, with steps, a table, outlier check and the linear scaling equation.

What do you want to do?
Values (comma or space separated)
Original minimum
Original maximum
Value to normalize
Normalized value
Target minimum
Target maximum
Clip results to the target range
Decimal places
Loading calculator…

How it works

x′ = lo + (x − min) ÷ (max − min) × (hi − lo) · for 0–1: x′ = (x − min) ÷ (max − min) · reverse: x = min + (x′ − lo) ÷ (hi − lo) × (max − min)

Min-max normalization stretches or squeezes a list linearly so its smallest value lands on a chosen lower bound and its largest on an upper bound, most often 0 and 1. Every value keeps its place and relative spacing, because the whole transformation is one straight line x′ = a·x + b (shown in the results). It is the usual way to put features on a common scale for k-nearest neighbours, neural networks and dashboards, and it is what scikit-learn’s MinMaxScaler does. By default the min and max come from the list itself. Choose fixed bounds when new data must be scaled exactly like earlier (training) data, or when the scale has known limits such as 0–10 ratings or 0–255 pixel values; values outside the bounds then fall outside the target range unless you turn on clipping. You can also normalize one value or turn a normalized value back into the original units. The weakness of min-max scaling is outliers: one extreme value sets the range and compresses everything else toward one end, so the calculator flags values beyond 1.5 × IQR.

Worked example

For 20, 40, 60, 80, 100 with target 0–1: min = 20 and max = 100 give a range of 80. The value 40 becomes 0 + (40 − 20) ÷ 80 × 1 = 0.25, and 60 becomes 0.5, so the list is 0, 0.25, 0.5, 0.75, 1 with a mean of 0.5. The scaling line is x′ = 0.0125 × x − 0.25. With target 0–100 the same list becomes 0, 25, 50, 75, 100.

Sources: Feature scaling — Wikipedia · MinMaxScaler — scikit-learn documentation

Frequently asked questions

What is the formula for normalizing between 0 and 1?

x′ = (x − min) ÷ (max − min). With data from 20 to 100, the value 60 becomes (60 − 20) ÷ 80 = 0.5. For any other range [a, b] use x′ = a + (x − min) ÷ (max − min) × (b − a).

Can I normalize to a range other than 0 to 1?

Yes. Set the target minimum and maximum to any two different numbers, for example 0 and 100 for a percentage scale or −1 and 1 for a symmetric range. Swapping them reverses the scale.

How is min-max normalization different from z-score standardization?

Min-max gives a bounded range and keeps the data shape; z-scores centre the data on a mean of 0 with a standard deviation of 1 and are unbounded. Min-max is much more affected by outliers, so z-scores or robust scaling are often better for data with extreme values.

How do I normalize new data the same way as my training data?

Use the training set’s min and max, not the new data’s. Choose “Normalize a list with fixed min and max” and enter those bounds. New values outside them will fall below 0 or above 1 unless you clip.

How do I convert a normalized value back to the original scale?

Reverse the formula: x = min + (x′ − lo) ÷ (hi − lo) × (max − min). On a 20–100 scale, 0.5 converts back to 60. Choose “Convert a normalized value back”.

Related calculators

This calculator is for educational purposes. Double-check important results before acting on them.