Spec-Zone.ru › NumPy 1.18

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

Spec-Zone.ru

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