始める無料で始める

LED の数字データセットを探る

次の演習では、NMF を使ってグレースケール画像をよく現れるパターンに分解していきます。まずは画像データセットを確認し、配列としてどのように表現されているかを見てみましょう。2 次元配列 samples として 100 枚の画像が与えられており、各行が 13x8 の 1 枚の画像を表します。データセットの画像は、LED デジタル表示の写真です。

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • matplotlib.pyplotplt としてインポートしてください。
  • samples の行 0 を選択して結果を digit に代入してください。たとえば配列 a の列 2 を選ぶには a[:,2] を使えます。samples は NumPy 配列なので、特定の行や列を選ぶのに .loc[]iloc[] アクセサは使えないことに注意してください。
  • digit を出力してください。これは用意済みです。0 と 1 の 1 次元配列になっていることに注目しましょう。
  • digit.reshape() メソッドを使って、形状が (13, 8) の 2 次元配列を得てください。結果を bitmap に代入します。
  • bitmap を出力し、1 の並びが数字の 7 を表していることを確認しましょう。
  • plt.imshow() 関数を使って、bitmap を画像として表示してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import pyplot
from matplotlib import pyplot as plt

# Select the 0th row: digit
digit = ____

# Print digit
print(digit)

# Reshape digit to a 13x8 array: bitmap
bitmap = ____

# Print bitmap
print(bitmap)

# Use plt.imshow to display bitmap
plt.____(____, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
コードを編集して実行