Pythonを使ってzip圧縮された画像ファイルを効率的に扱う方法を紹介します。この方法は、データサイエンスの画像分類コンペなどで、訓練(あるいはテスト)対象となる画像ファイルがzipに圧縮されている場合に特に有用です。

まず、必要なモジュールをインポートします。

import numpy as np
import io
from PIL import Image
import zipfile

次に、zipファイルのパスを指定します。

zip_path = '.\\data.zip'

配列格納用のリストを作成します。

train_X = []

zipファイルを読み込み、zipファイル内の各ファイルについてループします。

with zipfile.ZipFile(zip_path, 'r') as zip_file:
    for info in zip_file.infolist():
        if (info.filename != 'data/'):
            with zip_file.open(info.filename) as img_file:
                img_bin = io.BytesIO(img_file.read())
                img = Image.open(img_bin)
                img_array = np.array(img)
                train_X.append(img_array)
train_X = np.array(train_X)

以上のコードで、zip圧縮された画像ファイルを一括で読み込み、numpyの配列に格納することができます。

この方法を使えば、一度に大量の画像データを効率的に扱うことができます。特に、画像データが大量に存在するデータサイエンスのコンペティションなどで役立つでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です