【代码学习】显示手写数字数据集图片的代码

源码

"""
# -*- coding: utf-8 -*-
# @Time    : 2023/6/13 17:31
# @Author  : 王摇摆
# @FileName: Multiclass.py
# @Software: PyCharm
# @Blog    :https://blog.csdn.net/weixin_44943389?type=blog
"""

# 导入数据
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

digits = load_digits()

# 数据集切分
X_train, X_test, y_train, y_test = train_test_split(digits['data'], digits['target'], test_size=0.2)

fig, axes = plt.subplots(10, 16, figsize=(8, 8))
fig.subplots_adjust(hspace=0.1, wspace=0.1)
for i, ax in enumerate(axes.flat):
    ax.imshow(X_train[i, :].reshape(8, 8), cmap='binary', interpolation='nearest')
    ax.text(0.05, 0.05, str(y_train[i]),
            transform=ax.transAxes, color='blue')
    ax.set_xticks([])
    ax.set_yticks([])

plt.show()

学习

这段代码的目标是加载手写数字数据集(load_digits()),并显示训练集中的一部分样本图像。

以下是代码的解释:

  1. 导入所需的库:
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
  1. 加载手写数字数据集:
digits = load_digits()
  1. 切分数据集为训练集和测试集:
X_train, X_test, y_train, y_test = train_test_split(digits['data'], digits['target'], test_size=0.2)
  1. 创建一个包含10行16列的图像子图,并设置图像之间的间距和尺寸:
fig, axes = plt.subplots(10, 16, figsize=(8, 8))
fig.subplots_adjust(hspace=0.1, wspace=0.1)
  1. 使用循环遍历每个子图,显示训练集中的图像和对应的标签:
for i, ax in enumerate(axes.flat):
    ax.imshow(X_train[i, :].reshape(8, 8), cmap='binary', interpolation='nearest')
    ax.text(0.05, 0.05, str(y_train[i]), transform=ax.transAxes, color='blue')
    ax.set_xticks([])
    ax.set_yticks([])
  • ax.imshow()用于在子图中显示图像。X_train[i, :].reshape(8, 8)将图像数据从一维数组形状转换为8x8的二维数组形状,并使用二进制颜色映射显示图像。
  • ax.text()用于在子图中添加文本,显示对应的标签。
  • ax.set_xticks([])ax.set_yticks([])用于隐藏子图中的刻度标签。
  1. 最后,使用plt.show()显示图像子图:
plt.show()

运行代码后,应该会显示一个窗口,其中包含一部分训练集图像及其标签。您可以通过拖动窗口或使用放大/缩小选项来查看图像。请注意,plt.show()会阻塞代码的执行,直到您关闭显示窗口。

实验结果

.在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王摇摆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值