0から16の数字を使って手書き数字の形を表すプログラムを紹介します

sklearn(scikit-learn)digitsデータセットdigits.dataの命令で、手書き数字画像を0~16の数字で取り出すことができます。そして、その0~16の数字を使って手書き数字の形を表すことができないか試してみたPythonプログラムを紹介します。

この投稿以外にdigitsデータセットについて扱っている投稿がこちら↓になります。
sklearnの手書き数字画像を数字ごとにフォルダを分けて保存する方法

手書き数字0を0~16の数字を使って数字の形を表すとこんな感じになります。



目次

・0~16の数字を使って手書き数字の形を表すプログラム

・正しくは


・白黒反転するプログラムとその様子


0~16の数字を使って手書き数字の形を表すプログラム

5行目は0~16の数字からなる手書き数字0を取り出しています。

8行目から15行目は取り出した数字データを8行8列になるように表示しています。

18行目から20行目は8行8列で表した手書き数字を画像で表示しています。

format関数についての投稿はこちら↓
format関数 左揃え<右揃え>カンマ(,) Python

上プログラムの実行結果とその他の手書き数字の様子がこちら↓

の場合

の場合

3の場合

上の実行結果を見てみると0に近い数字になると黒く16に近い数字になると白くなっています。そして、0~16の数字を使って手書き数字の形を表した様子は、なんとなく0、1、3の数字に見えなくもないです。

正しくは

正しくは16を引いて白黒反転しないといけないのですが、0~16の数字で画像データを表す場合0に近いほど色が黒く16に近いほど白く表すようにした方が手書き数字の形が見やすいです。

一応、16を引いて白黒反転するプログラムとその様子を下に載せています。

白黒反転するプログラムとその様子

16-digits.data[0]にすることで、手書き数字0を表す1つ1つの配列データに16を引いています

0の場合

の場合

の場合