Spec-Zone.ru › NumPy 1.21

numpy.load

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

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

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

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

Параметры
fileобъект-подобный файлу, строка или pathlib.Path

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

mmap_mode{None, ‘r+’, ‘r’, ‘w+’, ‘c’}, необязательно

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

allow_picklebool, необязательно

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

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

fix_importsbool, необязательно

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

encodingstr, необязательно

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

Возвращает
resultмассив, кортеж, словарь и т.д.

Данные, сохраненные в файле. Для файлов .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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.load.html

Spec-Zone.ru

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