sklearn中digits手写字体数据集介绍

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()



你可能感兴趣的:(sklearn)