Массивы Numpy являются одной из наиболее эффективных структур данных для подготовки данных в Python, а модели машинного обучения, такие как в библиотеке scikit-learn, и модели глубокого обучения, такие как в библиотеке Tensorflow и Keras, ожидают входных данных в виде массивов NumPy и позволяют делать прогнозы в формате массивов.
Что такое функция np.save() в Python?
numpy.save() в Python — это математическая функция, используемая для хранения входного массива в файле на диске с расширением npy(.npy). Функция np.save() сохраняет массив в двоичный файл в формате .npy. Функция numpy save() принимает в качестве аргументов file, arr, allow_pickle и file_imports.
Иногда у нас есть много данных в массивах Numpy, которые нам нужно эффективно сохранить, но которые нам нужно использовать только в другой программе Python. Поэтому мы сохраняем массивы NumPy в собственном двоичном формате, который эффективен как для сохранения, так и для загрузки.
Это стандарт для подготовленных входных данных, таких как очищенные и преобразованные данные, которые необходимо будет использовать в качестве основы для тестирования ряда моделей машинного обучения в будущем или проведения множества экспериментов.
Формат файла .npy подходит для варианта использования и является просто «форматом NumPy». Этого можно добиться, используя save() и указав имя файла и массив, который нужно сохранить.
См. следующий синтаксис функции numpy save().
Синтаксис
|
1 |
numpy.save(file, arr, allow_pickle=True, fix_imports=True) |
Параметры
- file:
Файл или имя файла, в котором сохраняются данные. Если файл представляет собой строку или путь, расширение .npy будет добавлено к имени файла, если его еще нет. Если файл является файловым объектом, то имя файла не изменяется.
- allow_pickle:
Разрешить сохранение массивов объектов с помощью pickle Python. Причинами запрета pickle являются безопасность (загрузка pickle данных может выполнять произвольный код) и переносимость (объекты могут быть недоступны для загрузки в разных установках Python). По умолчанию: True.
- fix_imports:
Полезно только для принудительного маринования объектов в массивах на Python 3 способом, совместимым с Python 2.
- arr: данные массива для сохранения.
Функция np.save() с примером
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# app.py import numpy as np a = np.arange(5) # a is printed. print("a is:") print(a) # The array is saved in the file npfile.npy np.save('npfile', a) print("The array is saved in the file npfile.npy") |
Выход
|
1 2 3 4 |
python3 app.py a is: [0 1 2 3 4] The array is saved in the file npfile.npy |
Вы можете увидеть файл npfile.npy в своем рабочем каталоге.
Как прочитать файл npy в Python
В приведенном выше примере мы сохранили массив numpy в файле .npy. Далее мы прочитаем файл с помощью функции np.load() и выведем содержимое файла npy в консоль.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# app.py import numpy as np # The array is loaded into data data = np.load('npfile.npy') print("The data is:") print(data) # Data is printed from geekfile.npy print("The data is printed from npfile.npy") |
Выход
|
1 2 3 4 |
python3 app.py The data is: [0 1 2 3 4] The data is printed from npfile.npy |
После запуска примера вы увидите новый файл в каталоге с ‘npfile.npy’.
Вы не можете увидеть содержимое этого файла непосредственно в текстовом редакторе, потому что он находится в двоичном формате.
Сохранение массива numpy в файл CSV(ASCII)
Наиболее стандартным форматом файлов для хранения числовых данных в компьютерных файлах является формат переменных с разделителями-запятыми. Скорее всего, ваши обучающие данные и входные данные для ваших моделей хранятся в файлах CSV. Также удобно сохранять такие данные в файлы CSV, как, например, модели прогнозов.
Вы можете сохранить массивы NumPy в файлы CSV, используя функцию numpy savetxt(). Функция Numpy savetxt() принимает имя файла и массив в качестве аргументов и сохраняет массив в формате CSV.
Вы также должны определить разделитель; это символ, используемый для разделения каждой переменной в файле, чаще всего это запятая. Это можно установить с помощью аргумента «разделитель».
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 |
# app.py import numpy as np # define data data = np.asarray([[0, 1, 2, 3, 4]]) # save to csv file np.savetxt('npfile.csv', data, delimiter=',') print("The numpy array is saved in npfile.csv file") |
Выход
|
1 2 |
python3 app.py The numpy array is saved in npfile.csv file |
Файл npfile.csv создается в каталоге вашего проекта. Запуск примера определит массив NumPy и сохранит его в «npfile.csv».
Массив имеет одну строку данных с 10 столбцами. Поэтому мы ожидаем, что данные будут сохранены в файл CSV в виде одной строки данных. После запуска приведенного выше примера мы можем увидеть содержимое «npfile.csv».
Содержимое файла npfile.csv следующее.
|
1 |
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00 |
Мы видим, что данные правильно сохранены в виде одной строки и что числа с плавающей запятой в массиве сохранены с полной точностью.
