如何在迭代和执行 PCA 后正确 return 一个数组

How do I properly return an array after iterating and doing PCA

我有一个名为 x_train 的 3d 数组(样本、时间步长、特征),我想在其中遍历并对每个样本的 2D 数组(时间步长、特征)执行 PCA。我有这段代码,但因为它 returns 是一个 5x1 数组,所以我在返回值时遇到问题:

from sklearn.decomposition import PCA
pca = PCA(n_components=1)
X_transform_PCA = np.zeros((x_train.shape[0], 1))
for i in range(x_train.shape[0]):
    pca = PCA(n_components=1)
    f  = pca.fit_transform(x_train[i, :, :])
    X_transform_PCA[i,:] = f
print(X_transform_PCA.shape[0])

我明白了。看起来成功了。

X_transform_PCA = []

from sklearn.decomposition import PCA
pca = PCA(n_components=1)
for i in range(x_train.shape[0]):
    pca = PCA(n_components=1)
    f  = pca.fit_transform(x_train[i, :, :])
    X_transform_PCA.append(f)
print(X_transform_PCA)