Python 无法将输入数组从形状(2352)广播到形状(784)?
我使用“resize”来调整img的大小,但错误是“无法将输入数组从shape(2352)广播到shape(784)” 所以我试着测试它,然后写下:Python 无法将输入数组从形状(2352)广播到形状(784)?,python,Python,我使用“resize”来调整img的大小,但错误是“无法将输入数组从shape(2352)广播到shape(784)” 所以我试着测试它,然后写下: img = Image.open(filename) img=img.resize((28,28)) img_ndarray=numpy.asarray(img,dtype='float64')/32 print 1 a=[]; a=numpy.ndarray.flat
img = Image.open(filename)
img=img.resize((28,28))
img_ndarray=numpy.asarray(img,dtype='float64')/32
print 1
a=[];
a=numpy.ndarray.flatten(img_ndarray)
print len(a)
我发现a=2352=784*3
!
为什么?
img.resize没有用?它不起作用,因为
28*28!=2352
您可以像这样调整数组的大小img=img.resize((3784))
因为3*784=2352
。或者像这样img=img.resize((3,28,28))
因为3*28*28=2352
。但是我想要784的尺寸,现在我对“resize”感到困惑。“3”是从哪里来的?所以最好的方法是像这样插入你的数据:img=numpy.interp(np.arange(782),np.arange(2352),img)
你能给我解释一下“resize”吗?我认为resize(28*28)意味着我们使用28*28矩阵来存储图片。它不起作用,因为28*28!=2352
您可以像这样调整数组的大小img=img.resize((3784))
因为3*784=2352
。或者像这样img=img.resize((3,28,28))
因为3*28*28=2352
。但是我想要784的尺寸,现在我对“resize”感到困惑。“3”是从哪里来的?所以最好的方法是像这样插入你的数据:img=numpy.interp(np.arange(782),np.arange(2352),img)
你能给我解释一下“resize”吗?我认为调整大小(28*28)意味着我们使用28*28矩阵来存储图片。
img = Image.open(filename)
img=img.resize((28,28))
img_ndarray=numpy.asarray(img,dtype='float64')/32
print 1
a=[];
a=numpy.ndarray.flatten(img_ndarray)
print len(a)