Как я должен хранить мои массивы в файле? - PullRequest
0 голосов
/ 28 января 2019

Я запускаю симуляцию, которая создает различные массивы и матрицы каждый цикл обновления, который я хочу сохранить.Все данные являются числовыми и варьируются от скаляров до 3 х 4 матриц.Я бы в идеале сохранил данные в один файл и хотел бы впоследствии проанализировать данные в пандах.Я попробовал метод csv.DictWriter.writerow(), но он сохраняет массивы как строки, которые я не могу проанализировать.

Ответы [ 3 ]

0 голосов
/ 28 января 2019

Вероятно, самый быстрый и простой способ хранения и загрузки ваших матричных данных - это сохранить их в двоичном двоичном формате с np.save (https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.save.html), а затем загрузить обратно с помощью numpy load перед импортом в панды.dataframe.

Двоичный формат даст вам преимущество в скорости перед любыми текстовыми форматами.

0 голосов
/ 28 января 2019

Может быть, вы можете рассмотреть библиотеку yaml.

import yaml
import numpy as np

ary = np.zeros((2, 2, 2))

Сохранить в файл:

with open('numpy_to.yml', 'w') as outfile:
    yaml.dump(ary, outfile, default_flow_style=False)

Перезагрузить данные:

with open("numpy_to.yml", 'r') as inputfile:
    ary_back = yaml.load(inputfile)

print(ary_back)

# [[[0. 0.]
#   [0. 0.]]

#  [[0. 0.]
#   [0. 0.]]]


Если выхотите сохранить в один файл, вы можете dump a enter code here ct:
zeros = np.zeros((2, 2, 2))
ones = np.ones((2, 2, 2))

my_numpies = { 'zeros': zeros, 'ones': ones}
0 голосов
/ 28 января 2019

Вы можете использовать numpy.savez для сохранения нескольких массивов numpy в одном файле.

Для анализа вы можете просто загрузить его с помощью numpy.load

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...