#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. Другими словами, меня не удивляет, что это вызывает ошибку в памяти. Не могли бы вы подробнее объяснить, что вы пытаетесь сделать?