我在做分类问题。我的训练集是X_train
,其中包含60000
个元素,每个元素都有784
个特征(基本上是图像像素的强度)。我想在28 * 28
数组中重塑图像并将它们存储在另一个数组中。我尝试过但找不到解决方案。我该怎么办?
for x in range(60000):
X_new=X_train[x].reshape(28,28)
len(X_new)
我希望len(X_new) be 60000
,但其长度显示为28。
答案 0 :(得分:1)
在没有上下文的情况下,其他两个答案都可能是正确的。但是,我冒昧地猜测您的X_train
已经是形状为numpy.array
的{{1}}。在这种情况下,(60000, 784)
将返回len(X_train)
。如果是这样,您要做的只是:
60000
答案 1 :(得分:0)
您应该分配X_train[x]
而不是X_new
:
for x in range(60000): X_train[x] = X_train[x].reshape(28,28)
否则,X_new
将仅存储列表的最后一个元素。如果您不想破坏旧的数组,则可以创建一个新的数组:
X_new = [X_train[x].reshape(28,28) for x in range(60000)]
答案 2 :(得分:0)
可能您是想这样做:
X_new = []
for x in range(60000):
X_new.append(X_train[x].reshape(28, 28))
len(X_new)
您还可以使用列表理解
X_new = [x.reshape(28, 28) for x in X_train]