Python — как хранить временные ряды в наборе данных

Я создаю синтаксический анализатор, который преобразует MIDI-песню в последовательность нотно-аккордовых кортежей. Для каждой песни он возвращает список кортежей, где первый элемент — это нота, а второй — набор нот. Таким образом, результирующие данные имеют форму [(note, {chords})], например. [(20, {21, 23}), (30, {22, 24, 26, 28})]. Обратите внимание, что длина аккорда может быть произвольной.

Я хотел бы создать набор данных из многих песен, а затем передать их в рекуррентную нейронную сеть. Итак, мой вопрос: как проще всего сохранить эти данные в файл?

Я попробовал библиотеку h5py. К сожалению, это работает только с матрицами. Хотя и можно было бы так сохранить каждую пару, но, вероятно, это было бы очень неэффективно, так как длина хорды неограничена.


person user1518183    schedule 25.12.2017    source источник
comment
Используйте библиотеку рассола   -  person Demetri Pananos    schedule 25.12.2017
comment
@DemetriP Выглядит красиво, спасибо.   -  person user1518183    schedule 25.12.2017


Ответы (1)


Замаринуйте это.

#Write
import pickle 
x = [(20, {21, 23}), (30, {22, 24, 26, 28})]

with open('pickle.txt','wb') as f:
    pickle.dump(x,f)

#Read
with open('pickle.txt','rb') as f:
    y = pickle.load(f)
person Demetri Pananos    schedule 25.12.2017