导入数据
.mat文件在使用python加载时,我们需要使用一个SciPy工具。输出如下
X的维度为400,是20*20像素的图像,400个特征表示每个像素灰度强度
数据可视化
随机展示10个数据
sample_idx=np.random.choice(np.arange(data['X'].shape[0]),100)#在5000个数据中随机选取100个
sample_images=data['X'][sample_idx,:]#所选数据的全部特征
fig,ax_array = plt.subplots(nrows=10,ncols=10,sharey=True,sharex=True,figsize=(12,12))
for r in range(10):
for c in range(10):
ax_array[r,c].matshow(np.array(sample_images[10*r+c].reshape((20,20))).T,cmap=matplotlib.cm.binary)
plt.xticks(np.array([]))#用于设置每个小区域坐标轴刻度,设置为空,则不显示刻度
plt.yticks(np.array([]))
matplotlib.pyplot.matshow()画图,是一个把矩阵或者数组绘制成图像的函数
matplotlib.cm.binary二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色
ax_array[r,c].matshow(np.array(sample_images[10r+c].reshape((20,20))).T#画出随机选出的100个数据,将他们转化为2020的矩阵,(不转置的图像貌似是倒的)