Short Guide to Centering and Scaling

Centering:

1d array

>>> x - np.mean(x)

2d array along rows

>>> x - np.mean(x, axis=1).reshape(-1, 1)

2d array along cols

>>> x - np.mean(x, axis=0)

Unit length scaling (normalization). Elements are scaled to have and unit length (\sum_{i=1}^n {x_{i}^2} = 1):

1d array

>>> x / np.sqrt(np.sum((x)**2))

2d array along rows

>>> x / np.sqrt(np.sum((x)**2, axis=1)).reshape(-1, 1)

2d array along cols

>>> x / np.sqrt(np.sum((x)**2, axis=0))

Standardization. Elements are scaled to have unit standard deviation. The standard deviation is computed using n-1 instead of n (Bessel’s correction).

1d array

>>> x / np.std(x, ddof=1) # ddof=1: Bessel's correction

2d array along rows

>>> x / np.std(x, axis=1, ddof=1).reshape(-1, 1)

2d array along cols

>>> x / np.std(x, axis=0, ddof=1)