pca = PCA(n_components= n) 其中n是主成分比例,还是降到几维?

最近在看sklearn的PCA,看到两篇帖子在pca = PCA(n_components= ?)的代码上有不同的解释。
第一篇说n_component是百分比,意味着多大比例的主成分被提取,例如pca = PCA(n_components= 0.95)是提取95%。
第二篇说 n_components 是降到几维,例如pca = PCA(n_components= 3)是降到三维。
所以两种说法哪个正确呢?或者说两者都是正确的?

第一篇
pca = PCA(n_components= 0.99)

pca.fit(X)

print(pca.explained_variance_ratio_) #降维后每一列方差占比

print(pca.explained_variance_) #降维后每一列方差

print(pca.n_components_) #降维后数据维度

这里很令人疑惑,第一行PCA(n_components= 0.99)代表提取主成分的99%,最有一行”pca.n_components_“竟然又代表降维后的维度??

都正确. 如果是浮点数就表示保留的比例
详情可以看官方文档或者源码

请问报NameError: name 'PCA' is not defined怎么办?