データ分析・中級問題チェック
問題 6 /40
Pythonのpickleモジュールに関する説明で、誤っているものはどれか。
選択 1
「import pickle」と記述してインポートする必要がある。
選択 2
Pythonのオブジェクトを直列化(serialization)して、ファイルに書き出すことができる。
選択 3
pickle形式でファイルに書き出す場合は、pickle.load()関数を使う。
選択 4
pickle形式で書き出したファイルは、異なる端末で読み込むことができる。
解説
選択肢3が正解です。
pickleでファイルに書き出す場合はpickle.dump()関数を使い、読み込む場合はpickle.load()関数を使います。
メモリの内容をファイルに出力することを「メモリダンプ」と言いますが、pickle.dump()関数のdumpは、その「ダンプ」と同じ意味です。
pickleの「直列化して保存する」というのは、「bytes型で保存する」という意味です。
例えば、Pythonで平仮名の「あ」はstr型ですが、「'あ'.encode()」とするとbytes型に変換され、中身は「b'¥xe3¥x81¥x82'」になります。この「¥xe3¥x81¥x82」をそのまま保存するのがpickleです。
pandasのDaraFrameやscikit-learnの学習モデルも、pickle形式でファイルに書き出せば、異なる端末で読み込むことができます。
なお、ファイルではなくプログラムの中でオブジェクトとして読み書きする場合は、最後に「s」が付くpickle.loads()関数とpickle.dumps()関数を使います。
(公式書籍 p.40-41)