「平均が0、分散が1」ってやつです。
平均引いて標準偏差で割ればいいので大した計算量ではないのですが、SciPyを使うと関数一発。便利すぎる。
import numpy as np from scipy.stats import zscore def main(): _array = np.array([1, 2, 3, 4, 5]) _n = zscore(_array) print(_n) print(np.mean(_n)) print(np.var(_n)) if __name__ == "__main__": main()
$ python standardization.py [-1.41421356 -0.70710678 0. 0.70710678 1.41421356] 0.0 1.0