我如何在python中创建一个数组,其元素为2个数组

时间:2019-06-25 06:58:53

标签: python arrays

我在做分类问题。我的训练集是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。

3 个答案:

答案 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]