【发布时间】:2018-02-20 16:01:59
【问题描述】:
我正在尝试将 (1000,28,28) 的数组重塑为 (1000,784) 的数组,其中两个 28 相乘以使一个 784 并被卡住。任何建议将不胜感激。
抱歉,更具体地说,我正在尝试按如下方式导入 MNIST 数据集:
import numpy as np
import struct
import io
def read_idx(filename):
with open(filename,'rb',)as f:
zero, data_type, dims = struct.unpack('>HBB', f.read(4))
shape = tuple(struct.unpack('>I', f.read(4))[0] for d in range(dims))
return np.fromstring(f.read(), dtype=np.uint8).reshape(shape)
data= read_idx("t10k-images.idx3-ubyte")
x=data
len(x)
a=np.array(x)
print(a.shape)
a= np.reshape(x,(1000,784))
【问题讨论】:
-
看看numpy.reshape:docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html
-
在一般情况下,您尝试完成什么?即乘以列表中的所有值,仅乘以列表中的最后两个元素
-
@KarlGraham 他不是在尝试将值相乘,而是在谈论两个数组的长度,如 28 * 28 = 784
-
是的,不是相乘而是组合长度
-
那么问题出在哪里?
标签: python arrays numpy reshape