np.savetxt: как сохранить массив в текстовый файл в Python

Массивы Numpy — это эффективные структуры данных для работы с данными в Python, а модели машинного обучения в библиотеке scikit-learn и модели глубокого обучения в библиотеке Tensorflow и Keras ожидают входные данные в формате массивов Numpy и делают прогнозы в формате массивов Numpy.

np.savext

Функция np.savetxt() принимает два обязательных параметра: file name и data,  сохраняет и загружает массив в текстовый файл в Python. Чтобы сохранить массив numpy в текстовый файл, используйте метод numpy savetxt().

Numpy savetxt в Python

Функция numpy.savetxt() помогает пользователю сохранить массив numpy в текстовый файл вместе с тем, что мы использовали параметр формата в функции.

Синтаксис

Параметры

  • fname:

Если имя файла заканчивается на .gz, файл автоматически сохраняется в сжатом формате gzip. Функция loadtxt() прозрачно понимает сжатые gzip-файлы.

  • X:

[1D или 2D array_like] Данные для сохранения в текстовый файл.

  • fmt:

Одиночный формат(%10.5f), последовательность форматов или многоформатная строка, например, «Итерация %d — %10.5f», в этом случае разделитель игнорируется.

  • delimiter:

Строка или символ, разделяющий столбцы.

  • newline:

Строка или символ, разделяющий строки.

  • header:

Строка будет записана в начало файла.

  • footer:

Строка будет записана в конец файла.

  • comments:

Строка, которая будет добавлена к строкам заголовка и нижнего колонтитула, чтобы пометить их как комментарии. По умолчанию: ‘#’, как и ожидалось, например, для функции numpy.loadtxt().

  • encoding:

Кодировка используется для кодирования выходного файла. Это не относится к выходным потокам. Если кодировка отличается от «bytes» или «latin1», вы не сможете загрузить файл в версиях NumPy < 1.14. По умолчанию используется «latin1».

Пример

В этом примере мы создаем массив с помощью функции np arange(), а затем сохраняем этот массив в текстовом файле с помощью функции savetxt(). См. следующий код.

Вывод:

Итак, наш массив np печатаем в консоли и так же сохраняем в npfile.txt. Файл будет сохранен в той же директории, что и файл нашей программы app.py. Мы можем открыть npfile.txt, прочитать и распечатать содержимое на Python.

Давайте прочитаем содержимое текстового файла и распечатаем его в консоли.

Добавьте приведенный выше код в свой программный файл. Итак, весь ваш файл выглядит так, как показано ниже.

Если вы повторно запустите приведенный выше код, вы увидите вывод ниже.

TypeError: только массивы длины 1 могут быть преобразованы в скаляры Python

В функции savetxt(), если массивы numpy не имеют одинакового размера, возникает ошибка.

См. приведенный ниже код.

Вывод:

В приведенном выше коде мы создали три разных массива с тремя разными размерами.

Именно поэтому сначала произошла TypeError, которая говорит: только массивы size-1 могут быть преобразованы в скаляры Python.

Затем вторая ошибка типа говорит о несоответствии между массивом dtype(«object») и спецификатором формата(«%. 18e»).

Теперь мы можем решить обе ошибки TypeError, минуя один дополнительный параметр fmt. Вы можете сохранить массив как строку с помощью fmt=’ %s’.

См. следующий код.

Вывод:

Теперь вы можете видеть, что наши ошибки TypeError устранены, и мы также можем прочитать файл и распечатать содержимое в консоли.

Вывод:

Функция numpy savetxt для сохранения файла в формате CSV

Функция Numpy savetxt используется для сохранения файла в формате CSV.

См. следующий код.

Вывод:

Массив имеет одну строку данных с 5 столбцами. Мы ожидаем, что эти данные будут сохранены в файле CSV в виде одной строки данных. После запуска примера мы можем проверить содержимое «npfile.csv». Кроме того, мы прочитали файл csv и распечатали содержимое в консоли.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python