numpy.savez

numpy.savez(file, *args, **kwds)

Функция savez() cохраняет нескольких массивов в несжатом .npz файле.

Сохраняемые массивы могут быть перечислены как args, но в этом случае их имена не сохранятся, или могут быть перечислены как kwds если необходимо сохранить массивы вместе с их оригинальными именами.

Параметры:
file - строка, файловый объект, экземпляр класса pathlib.Path.
Задает файл или имя файла в который сохраняется массив. Имя файла-объекта не изменяется. Если имя файла является строкой или экземпляром класса pathlib.Path, то расширение .npz может быть добавлено автоматически, если его там нет.
args - массивы NumPy (необязательный параметр).
Массивы NumPy или любые выражения которые приводят к созданию масива. Ссылки на массивы (имена переменных) не сохраняются, если параметры kwds не указаны, то при извлечения из файла массивам будут присвоены имена arr_0, arr_1, arr_2 и т.д.
kwds - ключевые слова (необязательный параметр).
Массивы будут сохранены в файл с именами, которые перечислены в формате array = array_name.

Замечание

Файл формата .npz представляет собой несжатый архив с множеством файлов .npy внутри. Каждый .npy файл хранит один массив, а количество этих файлов соответствует количеству аргументов в args. При открытии файла .npz возвращается подобный словарю объект NpzFile, в котором каждому ключу соответствует отдельный массив. Список ключей можно узнать с помощью атрибута .files.

Смотрите так же:
load, save, savez_compressed, savetxt,


Примеры

Обратите внимание, что при сохранении одного массива, не обязательно указывать расширение файла, но необходимо при его загрузке:

>>> 
>>> a = np.array([1, 2, 3])
>>> b = np.array([[11], [22], [33]])
>>> c = np.array([[1, 1, 1], [3, 3, 3]])
>>> 
>>> np.savez('example/array_1', a, b, c)
>>> 
>>> data = np.load('example/array_1.npz')

Загруженный файл представляет собой подобный словарю объект, ключи которого сгенерированы автоматически, а значениями являются хранящиеся в файле массивы:

>>> data.files    #  проверяем имена ключей
['arr_1', 'arr_2', 'arr_0']
>>> 
>>> #  Получаем доступ к массивам:
... data['arr_0']
array([1, 2, 3])
>>> 
>>> data['arr_1']
array([[11],
       [22],
       [33]])
>>> 
>>> data['arr_2']
array([[1, 1, 1],
       [3, 3, 3]])
>>> 
>>> data.close()    #  Закрываем файл

Перечисляя имена массивы вместе с их ключевыми словами (kwds) мы можем сохранить массивы вместе с необходимыми именами:

>>> np.savez('example/array', a = a, b=b, c=c)
>>> 
>>> data = np.load('example/array.npz')
>>> 
>>> data.files
['c', 'a', 'b']
>>> 
>>> data['a']
array([1, 2, 3])
>>> 
>>> data['c']
array([[1, 1, 1],
       [3, 3, 3]])