Сохранение и загрузка данных с помощью NumPy

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

Сохранение и загрузка данных в бинарном формате .npy и .npz

Формат .npy

Формат .npy — это собственный бинарный формат NumPy, который используется для хранения одиночного массива. Он оптимизирован для быстрого сохранения и загрузки данных.

  • Сохранение массива в формате .npy с помощью функции np.save:

    import numpy as np
    
    # Создаем массив
    a = np.array([1, 2, 3, 4, 5])
    
    # Сохраняем массив в файл
    np.save('array.npy', a)
  • Загрузка массива из файла .npy с помощью функции np.load:

    # Загружаем массив из файла
    loaded_array = np.load('array.npy')
    print(loaded_array)  # array([1, 2, 3, 4, 5])

Формат .npz

Формат .npz — это архивированный формат для хранения нескольких массивов в одном файле. Он полезен, если нужно сохранить несколько массивов одновременно.

  • Сохранение нескольких массивов в формате .npz с помощью функции np.savez:

    b = np.array([6, 7, 8, 9, 10])
    c = np.array([11, 12, 13, 14, 15])
    
    # Сохраняем несколько массивов в один файл
    np.savez('arrays.npz', array1=a, array2=b, array3=c)
  • Загрузка массивов из файла .npz с помощью функции np.load:

    # Загружаем массивы из файла
    loaded = np.load('arrays.npz')
    
    # Доступ к массивам через ключи
    print(loaded['array1'])  # array([1, 2, 3, 4, 5])
    print(loaded['array2'])  # array([6, 7, 8, 9, 10])
    print(loaded['array3'])  # array([11, 12, 13, 14, 15])

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

NumPy также предоставляет функции для сохранения данных в текстовых форматах, таких как .txt и .csv. Эти форматы удобны для обмена данными с другими программами или системами.

np.savetxt

Функция np.savetxt сохраняет массивы в текстовый файл. Поддерживаются различные форматы, такие как .txt и .csv.

  • Сохранение массива в текстовый файл:

    # Сохраняем массив в текстовый файл
    np.savetxt('array.txt', a)
  • Сохранение массива в CSV-файл с указанием разделителя:

    # Сохраняем массив в CSV-файл
    np.savetxt('array.csv', a, delimiter=',')
  • Сохранение многомерного массива с форматированием чисел:

    # Сохраняем массив с указанием формата чисел
    np.savetxt('array_formatted.txt', a, fmt='%d')

np.loadtxt

Функция np.loadtxt загружает данные из текстового файла. Она поддерживает различные опции, такие как пропуск заголовков и задание разделителя.

  • Загрузка массива из текстового файла:

    # Загружаем массив из текстового файла
    loaded_array_txt = np.loadtxt('array.txt')
    print(loaded_array_txt)  # array([1., 2., 3., 4., 5.])
  • Загрузка массива из CSV-файла с указанием разделителя:

    # Загружаем массив из CSV-файла
    loaded_array_csv = np.loadtxt('array.csv', delimiter=',')
    print(loaded_array_csv)  # array([1., 2., 3., 4., 5.])

Сохранение и загрузка данных в бинарных форматах (например, .dat или .bin)

NumPy позволяет сохранять и загружать данные в произвольные бинарные форматы с использованием функций np.tofile и np.fromfile.

np.tofile

Функция np.tofile сохраняет данные массива в бинарный файл. Этот способ не сохраняет метаданные массива (например, форму), только сами данные.

  • Сохранение массива в бинарный файл:

    # Сохраняем массив в бинарный файл
    a.tofile('array.bin')

np.fromfile

Функция np.fromfile загружает данные из бинарного файла. Поскольку файл содержит только данные, необходимо указать форму и тип данных массива.

  • Загрузка массива из бинарного файла:

    # Загружаем массив из бинарного файла
    loaded_array_bin = np.fromfile('array.bin', dtype=np.int64)
    print(loaded_array_bin)  # array([1, 2, 3, 4, 5])
  • Задание формы загружаемого массива:

    loaded_array_bin = np.fromfile('array.bin', dtype=np.int64)
    loaded_array_bin.shape = (5,)  # Задание формы массива вручную

Заключение

NumPy предоставляет множество удобных функций для сохранения и загрузки данных в различных форматах. Форматы .npy и .npz идеально подходят для хранения данных в собственных бинарных форматах NumPy, что обеспечивает высокую скорость и эффективность. Текстовые форматы, такие как .txt и .csv, полезны для обмена данными с другими системами и приложениями. Возможность сохранять и загружать данные в произвольные бинарные файлы дает дополнительную гибкость при работе с данными.

Last updated