Spec-Zone.ru › NumPy 1.17

numpy.load

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

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

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

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

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

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

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

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

allow_pickle : bool, optional

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

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

fix_imports : bool, optional

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

encoding : str, optional

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

Возвращает:
result : array, 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.load.html

Spec-Zone.ru

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