Spec-Zone.ru › NumPy 1.20

numpy.load

numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII') [source]

Загрузка массивов или сериализованных объектов из .npy, .npz или сериализованных файлов.

Предупреждение

Загрузка файлов, содержащих массивы объектов, использует модуль pickle, который не защищён от ошибочных или злонамеренно сконструированных данных. Рассмотрите возможность передачи allow_pickle=False для загрузки данных, о которых известно, что они не содержат массивов объектов, для безопасного обращения с ненадежными источниками.

Параметры
filefile-like object, string, or pathlib.Path

Файл для чтения. Объекты типа «поток» должны поддерживать методы seek() и read(). Для сериализованных файлов необходимо, чтобы объект типа «поток» поддерживал также метод readline().

mmap_mode{None, ‘r+’, ‘r’, ‘w+’, ‘c’}, optional

Если не равно None, то отображает файл в памяти, используя указанный режим (см. numpy.memmap для подробного описания режимов). Массив, отображенный в памяти, хранится на диске. Однако к нему можно получить доступ и производить срезы, как к любому массиву ndarray. Отображение в памяти особенно полезно для доступа к небольшим фрагментам больших файлов без чтения всего файла в память.

allow_picklebool, optional

Разрешить загрузку сериализованных массивов объектов, хранящихся в файлах npy. Причины запрета сериализации включают безопасность, так как загрузка сериализованных данных может выполнить произвольный код. Если сериализация запрещена, загрузка массивов объектов завершится ошибкой. Значение по умолчанию: False

Изменено в версии 1.16.3: Значение по умолчанию установлено в False в ответ на CVE-2019-6446.

fix_importsbool, optional

Полезно только при загрузке сериализованных файлов, сгенерированных в Python 2, в Python 3, что включает в себя файлы npy/npz, содержащие массивы объектов. Если fix_imports равно True, pickle попытается сопоставить старые имена Python 2 с новыми именами, используемыми в Python 3.

encodingstr, optional

Кодировка, используемая при чтении строк Python 2. Полезно только при загрузке файлов, сериализованных в Python 2, в Python 3, включая файлы npy/npz, содержащие массивы объектов. Значения, отличные от «latin1», «ASCII» и «bytes», не допускаются, так как они могут повредить числовые данные. Значение по умолчанию: «ASCII»

Возвращает
resultarray, tuple, dict, etc.

Данные, сохраненные в файле. Для файлов .npz, возвращённый экземпляр класса NpzFile должен быть закрыт, чтобы избежать утечки дескрипторов файлов.

Возбуждает
IOError

Если входной файл не существует или недоступен для чтения.

ValueError

Файл содержит массив объектов, но задано allow_pickle=False.

См. также

save, savez, savez_compressed, loadtxt
memmap

Создать отображение в памяти массива, хранящегося в файле на диске.

lib.format.open_memmap

Создать или загрузить файл с отображением в памяти .npy.

Примечания

  • Если файл содержит сериализованные данные, возвращается объект, сохранённый в сериализации.
  • Если файл является файлом .npy, возвращается один массив.
  • Если файл является архивом .npz, возвращается объект, подобный словарю, содержащий пары ключ-значение {filename: array}, по одному для каждого файла в архиве.
  • Если файл является .npz файлом, возвращаемое значение поддерживает протокол менеджера контекста аналогично функции open:

    with load('foo.npz') as data:
        a = data['a']
    

    Дескриптор подлежащего файла закрывается при выходе из блока «with».

Примеры

Сохранить данные на диск и загрузить их снова:

>>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
>>> np.load('/tmp/123.npy')
array([[1, 2, 3],
       [4, 5, 6]])

Сохранить сжатые данные на диск и загрузить их снова:

>>> a=np.array([[1, 2, 3], [4, 5, 6]])
>>> b=np.array([1, 2])
>>> np.savez('/tmp/123.npz', a=a, b=b)
>>> data = np.load('/tmp/123.npz')
>>> data['a']
array([[1, 2, 3],
       [4, 5, 6]])
>>> data['b']
array([1, 2])
>>> data.close()

Отобразить массив в памяти и затем получить доступ ко второй строке непосредственно с диска:

>>> X = np.load('/tmp/123.npy', mmap_mode='r')
>>> X[1, :]
memmap([4, 5, 6])

© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.load.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API