numpy.savez_compressed
numpy.savez_compressed(file, *args, **kwds)
Функция savez_compressed() 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 представляет собой сжатый с помощью zipfile.ZIP_DEFLATED архив с множеством файлов .npy внутри. Каждый .npy файл хранит один массив, а количество этих файлов соответствует количеству аргументов в args
. При открытии файла .npz возвращается подобный словарю объект NpzFile, в котором каждому ключу соответствует отдельный массив. Список ключей можно узнать с помощью атрибута .files
.
Примеры
Обратите внимание, что при сохранении одного массива, не обязательно указывать расширение файла, но необходимо при его загрузке:
>>>
>>> a = np.array([1, 2, 3])
>>> b = np.array([[11], [22], [33]])
>>> c = np.array([[1, 1, 1], [3, 3, 3]])
>>>
>>> np.savez_compressed('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]])