如何将 PCA 降维应用于 3D 矩阵?

How can I apply PCA dimensionality reduction to a 3D matrix?

我想对 3D 矩阵 (69,2640,7680) 应用 PCA 降维。我有 69 个二维矩阵,每个矩阵都有一个大小 (2640,7680)。我想在这些矩阵上应用 PCA 作为 3D 矩阵 (69,2640,7680)。我不知道该怎么做。

如有任何帮助,我们将不胜感激。

代码:

    data=np.load('Normal_windows.npy')
    pca = PCA(n_components=1000)
    pca.fit(data)
    data_pca = pca.transform(data)
    print("original shape:   ", data.shape) ##(69,2640,7680)
    print("transformed shape:", data_pca.shape) 
 

PCA 处理特征,如果我理解正确的话,你有 69 个项目具有 (2640,7680) 个特征,对吗?

如果是这种情况,那么您可以将最后两个维度展平(类似于:

data_2d = np.array([features_2d.flatten() for features_2d in data])
pca = PCA(n_components=1000)
pca.fit(data_2d)
data_pca = pca.transform(data_2d)
print("original shape:   ", data_2d.shape) ##(69,2640*7680)
print("transformed shape:", data_pca.shape)