ValueError: setting an array element with a sequence. How to re-arrange my features to np.arrays?
ValueError: setting an array element with a sequence. How to re-arrange my features to np.arrays?
我有一些 features
看起来像这样
[array([-725.91003 , 51.094467 , 14.295977 , ..., -1.7903049,
-1.7903049, -1.7903049], dtype=float32),
array([-7.5625812e+02, 7.8090454e+01, -2.7161818e+00, ...,
-4.3733236e-01, -4.3733236e-01, -4.3733236e-01], dtype=float32),
array([-748.3388 , 73.042336 , 3.2872062, ..., 0.7631229,
0.7631229, 0.7631229], dtype=float32),
array([-727.7924 , 104.6542 , 5.8776445, ..., -1.7250983,
-1.7250983, -1.7250983], dtype=float32),
array([-626.4832 , 49.174232 , -17.049093 , ..., -1.8033456,
-1.8033456, -1.8033456], dtype=float32),
array([-7.2422760e+02, 1.0093343e+02, 1.8611973e+01, ...,
5.7193387e-01, 5.7193387e-01, 5.7193387e-01], dtype=float32),
array([-7.6023083e+02, 7.8462936e+01, -7.6474414e+00, ...,
2.0393424e-01, 2.0393424e-01, 2.0393424e-01], dtype=float32),
array([-732.217 , 111.95129 , 7.088293 , ..., -0.8722699,
-0.8722699, -0.8722699], dtype=float32),
array([-7.2999091e+02, 5.5315689e+01, 6.6589708e+00, ...,
-5.7534605e-01, -5.7534605e-01, -5.7534605e-01], dtype=float32),
array([-7.5546600e+02, 7.5549866e+01, -1.7497752e+00, ...,
1.6348878e-01, 1.6348878e-01, 1.6348878e-01], dtype=float32),
array([-735.93207 , 67.90759 , 5.9061728, ..., -0.7860311,
-0.7860311, -0.7860311], dtype=float32),
array([-7.5995685e+02, 6.4485733e+01, 5.4719698e-01, ...,
-4.0942365e-01, -4.0942365e-01, -4.0942365e-01], dtype=float32),
array([-7.2625726e+02, 7.6061371e+01, 2.1122944e+01, ...,
6.2402117e-01, 6.2402117e-01, 6.2402117e-01], dtype=float32)]
我怎样才能把它们按正确的顺序排列。我想有一个外np.array
,里面的所有数组都要变成列表。我想将此 np.array
放入 PCA。一般来说,我希望它们采用 np.array
格式,但使用正确的方式。
然后我想做类似的事情
pca = PCA(n_components=2)
f2d= pca.fit_transform(features)
如果我用我的初始格式这样做,我会收到一条错误消息
ValueError: setting an array element with a sequence.
根据 documentation
fit_transform(X, y=None)
想要:
X: Xarray-like, shape (n_samples, n_features) Training data, where
n_samples is the number of samples and n_features is the number of
features.
所以在你的情况下你想把你的 1D ndarray
列表变成 2D ndarray
通过:
features = np.array(features)
您不需要将其转换为列表的一维 ndarray
。
基本上,我找到了问题所在。问题是 features
的每个数组都有不同的长度。因此,如果我这样做 np.array(feautures)
,这不完全是一个“矩阵”,所以 PCA
无法理解这个对象是什么。
我认为我必须更改我的算法的一些先前部分,以便 feautures
的每个数组具有相同的长度。
我有一些 features
看起来像这样
[array([-725.91003 , 51.094467 , 14.295977 , ..., -1.7903049,
-1.7903049, -1.7903049], dtype=float32),
array([-7.5625812e+02, 7.8090454e+01, -2.7161818e+00, ...,
-4.3733236e-01, -4.3733236e-01, -4.3733236e-01], dtype=float32),
array([-748.3388 , 73.042336 , 3.2872062, ..., 0.7631229,
0.7631229, 0.7631229], dtype=float32),
array([-727.7924 , 104.6542 , 5.8776445, ..., -1.7250983,
-1.7250983, -1.7250983], dtype=float32),
array([-626.4832 , 49.174232 , -17.049093 , ..., -1.8033456,
-1.8033456, -1.8033456], dtype=float32),
array([-7.2422760e+02, 1.0093343e+02, 1.8611973e+01, ...,
5.7193387e-01, 5.7193387e-01, 5.7193387e-01], dtype=float32),
array([-7.6023083e+02, 7.8462936e+01, -7.6474414e+00, ...,
2.0393424e-01, 2.0393424e-01, 2.0393424e-01], dtype=float32),
array([-732.217 , 111.95129 , 7.088293 , ..., -0.8722699,
-0.8722699, -0.8722699], dtype=float32),
array([-7.2999091e+02, 5.5315689e+01, 6.6589708e+00, ...,
-5.7534605e-01, -5.7534605e-01, -5.7534605e-01], dtype=float32),
array([-7.5546600e+02, 7.5549866e+01, -1.7497752e+00, ...,
1.6348878e-01, 1.6348878e-01, 1.6348878e-01], dtype=float32),
array([-735.93207 , 67.90759 , 5.9061728, ..., -0.7860311,
-0.7860311, -0.7860311], dtype=float32),
array([-7.5995685e+02, 6.4485733e+01, 5.4719698e-01, ...,
-4.0942365e-01, -4.0942365e-01, -4.0942365e-01], dtype=float32),
array([-7.2625726e+02, 7.6061371e+01, 2.1122944e+01, ...,
6.2402117e-01, 6.2402117e-01, 6.2402117e-01], dtype=float32)]
我怎样才能把它们按正确的顺序排列。我想有一个外np.array
,里面的所有数组都要变成列表。我想将此 np.array
放入 PCA。一般来说,我希望它们采用 np.array
格式,但使用正确的方式。
然后我想做类似的事情
pca = PCA(n_components=2)
f2d= pca.fit_transform(features)
如果我用我的初始格式这样做,我会收到一条错误消息
ValueError: setting an array element with a sequence.
根据 documentation
fit_transform(X, y=None)
想要:
X: Xarray-like, shape (n_samples, n_features) Training data, where n_samples is the number of samples and n_features is the number of features.
所以在你的情况下你想把你的 1D ndarray
列表变成 2D ndarray
通过:
features = np.array(features)
您不需要将其转换为列表的一维 ndarray
。
基本上,我找到了问题所在。问题是 features
的每个数组都有不同的长度。因此,如果我这样做 np.array(feautures)
,这不完全是一个“矩阵”,所以 PCA
无法理解这个对象是什么。
我认为我必须更改我的算法的一些先前部分,以便 feautures
的每个数组具有相同的长度。