Эффективный формат сериализации данных для списка массивов в Python - PullRequest
0 голосов
/ 14 июля 2020

У меня есть большой список массивов (тип данных float32, с несколькими экземплярами int) в Python, которые должны быть сериализованы с помощью кодировки UTF-8 и сохранены на сервере. Однако у меня возникают проблемы с размером сохраненного файла, превышающим ограничения для хранения.

Доступные форматы сериализации, которые может обрабатывать сервер: строка, байты, JSON и XML. Какой из этих форматов данных лучше всего подходит для сохранения структуры данных?

1 Ответ

0 голосов
/ 14 июля 2020

Я думаю, вам также следует изучить использование файлов h5. Я бы просто честно преобразовал список списков в массив numpy, а затем сохранил массив numpy в файл h5.

Вы можете сохранить как: ->

import numpy as np
import h5py

nparr = np.asanyarray(yourArr)
h5f = h5py.File('listData.h5', 'w')
h5f.create_dataset('dataset_1', data=nparr)
h5f.close()

Вы можете загружать, например:

h5f = h5py.File('listData.h5','r')
loadData = h5f['dataset_1'][:]
h5f.close()

Файлы H5 оптимизированы для хранения матричных данных.

Если вам нужны вспомогательные скрипты, попробуйте некоторые, которые я сделал здесь (бесстыдный плагин): https://github.com/ss4328/h5_manager_scripts

Если файлов h5 нет. ваш копать, JSON - лучшая реализация. Тонны бесплатных библиотек для генерации / использования данных. Довольно гладко в Интернете, не говоря уже о том, что они удобочитаемы. XML немного устарел.

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