画素値のスケーリング
次のコードを実行したときの出力として、正しいものを1つ選べ。
import numpy as np
from PIL import Image
a = np.array(Image.new("L", (2, 2), 255)).astype("float32") / 255
print(float(a.max()), a.dtype)
- A
1.0 float32 - B
255.0 float32 - C
1 uint8 - D
1.0 uint8
正解と解説を見る
正解:A
画像の画素値(0〜255 の整数)を 255 で割って 0〜1 にすると、機械学習で扱いやすい。整数のまま割ると型が変わるので、型にも注意する。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import numpy as np` | — |
| 2 | `from PIL import Image` | — |
| 3 | `a = np.array(Image.new("L", (2, 2), 255)).ast…` | a = [[1.0, 1.0], [1.0, 1.0]] |
| 4 | `print(float(a.max()), a.dtype)` | a = [[1.0, 1.0], [1.0, 1.0]] |
| 結果 | 実際の出力 | 1.0 float32 |
- A
正しい。画素値を 255 で割ると、0〜1 の範囲になる。型は
float32。 - B
誤り。255 で割っている。
- C
誤り。
astype("float32")で型が変わる。 - D
誤り。型は
float32。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。