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