Spec-Zone.ru › NumPy 2.0

numpy.load

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

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

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

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

Параметры:
fileобъект типа file-like, строка или pathlib.Path

Файл для чтения. Объекты типа file-like должны поддерживать методы seek() и read() и всегда должны открываться в двоичном режиме. Для файлов с сериализованными объектами требуется, чтобы объект типа file-like также поддерживал метод 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’

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

Максимально допустимый размер заголовка. Крупные заголовки могут быть небезопасными для загрузки и поэтому требуют явного указания большего значения. См. ast.literal_eval для получения подробной информации. Этот параметр игнорируется, когда allow_pickle передан. В этом случае файл по определению надёжен, и ограничение не требуется.

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

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

Возбуждает:
OSError

Если входной файл не существует или не может быть прочитан.

UnpicklingError

Если allow_pickle=True, но файл не может быть загружен как сериализованный объект.

ValueError

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

EOFError

При вызове np.load несколько раз на одном дескрипторе файла, если все данные уже были прочитаны

См. также

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

Spec-Zone.ru

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