Spec-Zone.ru › NumPy 1.19

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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.load.html

Spec-Zone.ru

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