我产生了一个相关矩阵my_corr = rtn.corr(method = 'pearson')
,然后根据scipy:eig_vals, eig_vecs = linalg.eig(my_corr)
在该矩阵上进行了PCA合成。但是对于像这样的特征值,我得到了负数和复数-4.33309269e-16 + 2.336829340-16j。如果我用use linalg.eigh
而不是linalg.eig
,则得到的是真实值,但也有很多负值。为什么会这样呢?感谢您的帮助
[如果没有更多信息,例如linalg.eig
和linalg.eigh
的摘要输出或rtn
数据帧的开头,则可能有多种原因。例如,eigh
自动对您的特征值进行排序,而不是eig
。有关此的更多信息:Difference between linalg.eigh and linalg.eig