数字一览
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 59 课,共 60 课。
load_digits 包含 1,797 个手写数字。每个样本由 64 个像素亮度值组成,按行排列,构成一张 8 × 8 的图片,亮度范围从 0(空白)到 16(墨迹最浓)。
没有两位书写者写出的 4 完全一样:
老师想要的是典型的那种:平均图像,其中每个像素的值都是该数字所有样本中对应像素的平均值。
挑战
困难程序会读取一个数字 d。加载数字数据时不要使用 as_frame,这样 .data 和 .target 就是 NumPy 数组。
- 计算数字
d的平均图像。 - 打印最亮像素所在的行和列,从 0 开始计数。
- 打印平均墨迹值:将 64 个像素的均值再求平均,并使用
np.round四舍五入到 2 位小数。 - 将它绘制成一张 8 × 8 的
gray图像,标题为Average和这个数字。
以 4 为例,结果应如下所示:
输入 4 时,完整输出如下:
Brightest pixel: row 5, column 4
Average ink: 4.85
Charts drawn: 1
Title: Average 4
Images: 1
Size: 8 rows, 8 columns
Color map: gray
Row 0: [0.0, 0.0, 0.5, 7.1, 11.5, 2.0, 0.2, 0.1]
Row 1: [0.0, 0.1, 3.5, 13.3, 8.5, 2.0, 1.1, 0.3]
Row 2: [0.0, 0.7, 10.5, 11.4, 4.9, 5.8, 3.8, 0.3]
Row 3: [0.0, 4.6, 14.5, 6.4, 7.4, 10.6, 6.1, 0.0]
Row 4: [0.0, 8.6, 14.6, 9.7, 13.0, 14.0, 5.3, 0.0]
Row 5: [0.1, 6.3, 11.3, 12.4, 14.6, 10.4, 1.6, 0.0]
Row 6: [0.1, 1.1, 2.9, 7.8, 13.5, 4.2, 0.0, 0.0]
Row 7: [0.0, 0.0, 0.6, 7.8, 11.8, 2.0, 0.0, 0.0]亲手试试
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
d = int(input())
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器