Python ValueError:无法将大小为784的数组重塑为形状(16,16)

Python ValueError:无法将大小为784的数组重塑为形状(16,16),python,python-3.x,numpy,reshape,image-preprocessing,Python,Python 3.x,Numpy,Reshape,Image Preprocessing,读取.mat时,使用Python格式化数据并显示为plt: import scipy.io as spio import numpy as np import matplotlib.pyplot as plt digits = spio.loadmat('./data/digits.mat', squeeze_me=True) X = digits['X'] plt.imshow(np.reshape(X[5,:],(16,16)), cmap='Greys') plt.show() 它引发

读取
.mat
时,使用Python格式化数据并显示为
plt

import scipy.io as spio
import numpy as np
import matplotlib.pyplot as plt

digits = spio.loadmat('./data/digits.mat', squeeze_me=True)
X = digits['X']
plt.imshow(np.reshape(X[5,:],(16,16)), cmap='Greys')
plt.show()
它引发了一个错误:
ValueError:无法将大小为784的数组重塑为形状(16,16)

我怎样才能正确地重塑它?谢谢

X
的形状:

print(X.shape)
输出:

数据的键:

print(digits.keys())
输出:


当然,解决方案比你想象的要简单

ValueError:无法将大小为784的数组重塑为形状(16,16)


因此,您需要将格式改为
(28,28)
,而不是
(16,16)

16*16=256。不知道你的困惑是什么。。。。
print(digits.keys())
dict_keys(['__header__', '__version__', '__globals__', 'Y', 'X'])
28 x 28 = 784