У меня есть серия pandas
, которая содержит numpy
двумерный массив в каждой строке. Это выглядит так:
import numpy as np
import pandas as pd
s = pd.Series([np.random.rand(4, 3) for i in range(0, 4)])
s.index = pd.MultiIndex.from_tuples([(1, 1), (1, 2), (2, 1), (2, 2)], names = ['id1', 'id2'])
id1 id2
1 1 [[0.03782554831829077, 0.5265070448370034, 0.9...
2 [[0.8542842542246349, 0.532639803094301, 0.390...
2 1 [[0.34916931374311333, 0.5820394142173778, 0.1...
2 [[0.08834940949270964, 0.9464717661752107, 0.4...
dtype: object
Однако реальные данные имеют более 50 тыс. Строк с массивом 7140х3 в каждой строке. Мне нужно хранить его на диске. Я обычно go для .parquet
с большими файлами данных из-за его эффективного преобразования, но я боюсь, что он не может обрабатывать numpy
массивы в виде столбца. Pickle
, кажется, работает нормально, но в результате получается файл размером 10 ГБ, поэтому со многими подобными наборами данных мне будет просто не хватать места. Итак, я хотел бы спросить, каков наиболее эффективный способ хранения такого рода наборов данных?