Сохраните много переменных numpy в одном файле

У меня есть скрипт, который собирает данные с помощью np.loadtxt() из разных папок. Я хотел бы иметь возможность сохранить их все в текущей папке без необходимости делать savetxt() для каждого.

Цель состоит в том, чтобы иметь переносимый файл для выполнения сценария на другом компьютере.

Что вы пробовали и что не сработало?

newkid 21.02.2019 22:41

Я недостаточно знаю, что вы делаете с данными или как эти данные выглядят. Моя первая склонность состоит в том, чтобы хранить с помощью pickle, таким образом вы можете получить файл numpy напрямую, но я не знаю, есть ли у вас другое предполагаемое использование данных. Например, должен ли он быть в текстовом файле?

Polkaguy6000 21.02.2019 22:43

Pickle, насколько я понимаю, также должен явно сохранять каждую из переменных. Интересно, есть ли способ сохранить все переменные numpy, загруженные скриптом, для последующей загрузки.

heracho 21.02.2019 22:54

Что такое смесь shape и dtype?

hpaulj 21.02.2019 22:59

dtype одинаковы (numpy.ndarray). Формы различаются как по столбцам, так и по строкам.

heracho 22.02.2019 15:27
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
5
935
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать функцию NumPy save следующим образом:

import numpy as np
# Create sample data
a = np.array([1.0, 2.0, 3.0])
b = np.array([4.0, 5.0])
# Save to file
np.save('myfile.npy', [a, b])
# Load back in
a2, b2 = np.load('myfile.npy')

Обратите внимание: хотя в документации это не указано явно, вы действительно можете хранить несколько массивов разных размеров в одном файле, как указано выше (на самом деле это делается путем сохранения каждого массива как элемента одномерного массива dtype object, но неважно реализация).

Почему бы и нет np.savez?

hpaulj 21.02.2019 22:59

@hpaulj Это тоже хорошо. Я обычно использую np.save, может быть, потому что так лучше читается.

jmd_dk 21.02.2019 23:01

Хотя мне нужно вручную добавить имя каждой переменной в массив 1D, это намного проще и менее запутанно, чем писать np.savetxt для каждой.

heracho 22.02.2019 16:29

Другие вопросы по теме