1. 导入
from sklearn import datasets
digits = datasets.load_digits()
2. 属性查看
- digits: bunch类型
print digits.keys()
['images', 'data', 'target_names', 'DESCR', 'target']
3. 具体数据
- 1797个样本,每个样本包括8*8像素的图像和一个[0, 9]整数的标签
3.1 images
- ndarray类型,保存8*8的图像,里面的元素是float64类型,共有1797张图片
- 用于显示图片
# 获取第一张图片
print digits.images[0]
plt.imshow(digits.image[0])
[[ 0. 0. 5. 13. 9. 1. 0. 0.]
[ 0. 0. 13. 15. 10. 15. 5. 0.]
[ 0. 3. 15. 2. 0. 11. 8. 0.]
[ 0. 4. 12. 0. 0. 8. 8. 0.]
[ 0. 5. 8. 0. 0. 9. 8. 0.]
[ 0. 4. 11. 0. 1. 12. 7. 0.]
[ 0. 2. 14. 5. 10. 12. 0. 0.]
[ 0. 0. 6. 13. 10. 0. 0. 0.]]
3.2 data
- ndarray类型,将images按行展开成一行,共有1797行
- 输入数据
# 获取第一张图片的数据
print digits.data[0]
[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5.
0. 0. 3. 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8.
8. 0. 0. 5. 8. 0. 0. 9. 8. 0. 0. 4. 11. 0. 1.
12. 7. 0. 0. 2. 14. 5. 10. 12. 0. 0. 0. 0. 6. 13.
10. 0. 0. 0.]
3.3 target
- ndarray类型,指明每张图片的标签,也就是每张图片代表的数字
- 输出数据,标签
# 获取第一张图片的标签
print digits.target[0]
0
3.4 target_names
- ndarray类型,数据集中所有标签值
print digits.target_names
[0 1 2 3 4 5 6 7 8 9]
3.5 DESCR
- 数据集的描述,作者,数据来源等
把一张图片转化为像素矩阵:
from sklearn.datasets import load_digits import matplotlib.pyplot as plt digits = load_digits() print(digits.data[1].reshape((8,8))) #方法1 print(digits.images[1])#方法2
显示10张图片:
fig, ax = plt.subplots( nrows=2, ncols=5, sharex=True, sharey=True, ) ax = ax.flatten() for i in range(10): ax[i].imshow(digits.data[i].reshape((8,8)), cmap='Greys', interpolation='nearest') plt.show()