У меня большой набор данных.
Лучшее, чего я мог достичь, это использовать numpy массивы и сделать из него двоичный файл, а затем сжать его:
my_array = np.array([1.0, 2.0, 3.0, 4.0])
my_array.tobytes()
my_array = zlib.compress(my_array)
С помощью моего Однако для реальных данных двоичный файл становится размером 22 МБ, поэтому я надеюсь сделать его еще меньше. Я обнаружил, что по умолчанию 64-битные машины используют float64, который занимает 24 байта в памяти, 8 байтов для указателя на значение, 8 байтов для двойной точности и 8 байтов для сборщика мусора. Если я изменяю его на float32, я получаю много памяти, но теряю в точности, я не уверен, хочу ли я этого, но как насчет 8 байтов для сборщика мусора, он автоматически удаляется?
Замечания: Я уже пробовал мариновать, рассасывать, msgpack, но 22мб - лучший размер, которого мне удалось достичь.