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