在PCA中会用到numpy.linalg.eig()函数
w,v = numpy.linalg.eig(a) 计算方形矩阵a的特征值和右特征向量
参数:
a : 待求特征值和特征向量的方阵。
返回:
w: 多个特征值组成的一个矢量。备注:多个特征值并没有按特定的次序排列。特征值中可能包含复数。
v: 多个特征向量组成的一个矩阵。每一个特征向量都被归一化了。第i列的特征向量v[:,i]
对应第i个特征值w[i]。
示例:
import numpy as np
a = np.diag((1,2,3)) # 一个对角矩阵
w, v = np.linalg.eig(a)
print(w)
print(v)
"""
array([1., 2., 3.])
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
"""
参考:https://github.com/numpy/numpy/blob/v1.19.0/numpy/linalg/linalg.py#L1188-L1334