在SciPy中进行主成分分析可以使用scipy.linalg.eig
函数。以下是一个简单的示例代码:
import numpy as np
from scipy.linalg import eig
# 创建一个随机的数据集
data = np.random.rand(10, 5)
# 计算数据集的协方差矩阵
cov_mat = np.cov(data, rowvar=False)
# 计算特征值和特征向量
eig_vals, eig_vecs = eig(cov_mat)
# 输出前两个主成分
print("Principal Component 1:")
print(eig_vecs[:, 0])
print("Principal Component 2:")
print(eig_vecs[:, 1])
在这个示例中,我们首先生成一个随机的数据集,然后计算数据集的协方差矩阵。接下来,使用scipy.linalg.eig
函数计算协方差矩阵的特征值和特征向量,然后输出前两个主成分(特征向量)。