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

Eda*_*Eda 4 python 3d numpy matrix pca

我想在 3D 矩阵 (69,2640,7680) 上应用 PCA 降维。我有 69 个 2D 矩阵,每个矩阵都有一个大小 (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) 
 
Run Code Online (Sandbox Code Playgroud)

rob*_*b_m 5

如果我理解正确的话,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)
Run Code Online (Sandbox Code Playgroud)