https://github.com/wzy6642/Machine-Learning-in-Action-Python3/blob/3710796b7497255fbc1bba91b0558b4b3eb828b4/PCA_Project1/PCA.py#L52