'How to manually scale data to a normal distribution

I do data normalization as:

X = ( X - X.mean(axis=0) ) / X.std(axis=0)

But some features of X have 0 variance. It gives me Runtime error for ZeroDivision.

I know we can normalize using "StandardScalar" class from sklearn. But how can I normalize data by myself from scratch if std=0 ?



Solution 1:[1]

If standard deviation is 0 for a particular feature, than all of its values are identical. In this case X = X - X.mean(axis=0) should suffice. This would give you 0 mean and 0 standardeviation.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jafar Isbarov