Чтение и запись в/из файлы массивов

NumPy позволяет сохранять на диск и загружать с диска в текстовые или двоичные файлы. Здесь рассмотрим только встроенные двоичные файлы NumPy, так как большинство предпочтут использовать pandas или другие инструменты для загрузки текста или таблиц.

Функции np.save и np.load — это две рабочие лошадки для эффективного сохранения и загрузки данных массива на диск. Массивы сохраняются по умолчанию в несжатый двоичный формате с расширением файла .npy:

In [149]: arr = np.arange(10)

In [150]: np.save('some_array', arr)

В пути к файлу не указывается разширение, оно добавляется по умолчанию. Массив с диска потом можно загрузить с помощью функции np.load:

In [151]: np.load('some_array.npy')
Out[151]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Можно сохранить несколько массивов в один несжатый файл, используя функцию np.savez и передавая массивы в качестве аргументов:

In [152]: np.savez('array_archive.npz', a=arr, b=arr)

При загрузке файла .npz возвращается объект типа словаря, который содержит отдельные массивы:

In [153]: arch = np.load('array_archive.npz')

In [154]: arch['b']
Out[154]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Если данные хорошо сжимаются, можно использовать функцию np.savez_compressed:

In [155]: np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)