Выполните следующие действия для каждого из видео:
- Загрузите данные в один массив NumPy.
- Записывайте на диск, используя
np.save()
с расширением .npy
. - Добавьте файл
.npy
в сжатый архив .zip
с помощью модуля zipfile
.
Конечный результат будет таким, как если бы вы загрузили все 224 массива и сохранили их водин раз, используя np.savez_compressed
, но он будет использовать только достаточно оперативной памяти для обработки одного видео за раз, вместо того, чтобы сохранять все несжатые данные в памяти сразу.
Наконец, np.load()
(или zipfile
) можно использовать для загрузки данных с диска, по одному видео за раз, или даже с помощью concurrent.futures.ThreadPoolExecutor
для загрузки нескольких файлов одновременно, используя несколько ядер для декомпрессии, чтобы сэкономить время (вы можете получить ускорение почти линейно с числомядра, если ваш диск быстрый).