Проблемы с памятью при преобразовании большого массива Xarray в фрейм данных, Python

#dataframe #ram #python-xarray

Вопрос:

У меня есть x,y,временной xarray, содержащий около 2 миллионов точек данных. Я попытался превратить его в массив данных dask, а затем превратить его в фрейм данных, но памяти недостаточно. Я использую колаб. Есть ли другой способ сделать это, который мог бы вписаться в память colabs?

 dask_array = da.array.from_array(xarray.values, chunks= 
(xarray.shape[0], 100, 100))

#reshape and transpose to make rows of timeseries for each 
point
dask_t = 
dask_array.transpose(1,2,0).reshape(arr.shape[1]*arr.shape[2], 
                                          arr.shape[0])

#prepare column names for timeseries
feat_cols = ['time_' str(i) for i in 
range(dask_array.shape[0])]


#turn into a dataframe


pd.DataFrame(dask_t.compute(), columns=feat_cols)
 

Комментарии:

1. По моим подсчетам, размер одного массива будет примерно 2e6*100*100*8/(1024^3)=149 GB . Имеет ли ваш компьютер в несколько раз больший объем памяти? Если нет, то в чем вопрос?

2. Другими словами, меня не удивляет, что это вызывает ошибку в памяти. Не могли бы вы подробнее объяснить, что вы пытаетесь сделать?