numpy.load#

numpy.load(файл, mmap_mode=None, allow_pickle=False, fix_imports=True, кодировка='ASCII', *, max_header_size=10000)[источник]#

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

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

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

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

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

mmap_mode{None, 'r+', 'r', 'w+', 'c'}, опционально

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

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

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

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

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

кодировкаstr, optional

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

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

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

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

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

Вызывает:
OSError

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

UnpicklingError

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

ValueError

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

EOFError

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

Смотрите также

save, savez, savez_compressed, loadtxt
memmap

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

lib.format.open_memmap

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

Примечания

  • Если файл содержит данные pickle, то возвращается любой объект, хранящийся в pickle.

  • Если файл является .npy файл, тогда возвращается один массив.

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

  • Если файл является .npz файл, возвращаемое значение поддерживает протокол контекстного менеджера аналогично функции open:

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

    Базовый файловый дескриптор закрывается при выходе из блока 'with'.

Примеры

>>> import numpy as np

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

>>> 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])