2016-02-24 71 views
0

作爲每Value error in multplying xarray variable with 2D numpy arrayxarray乘法運算後陣列的不正確的形狀

import xarray as xr 
hndl_tran = xr.open_dataset(path_netcdf, chunks={'time': 10}) 
flow_data = hndl_tran['val'] 
new_arr = flow_data * xr.DataArray(vba) 

下面是輸入陣列的形狀

flow_data.shape 
(1165, 720, 1440) 

vba.shape 
(720L, 1440L) 

這裏是陣列的形狀相乘後:

new_arr.shape 
(1165, 720, 1440, 720, 1440) 

我想結果數組的形狀與flow_data相同。我該怎麼做呢?

+0

那'xr.DataArray()'可能會做一些有趣的事情。因此,爲了更好地控制事物並確保廣播具有一致性,我認爲您可以執行'flow_data *(xr.DataArray(vba).reshape(720,1440))''。 – Divakar

+0

謝謝@Divakar,我得到這個錯誤重塑:'AttributeError:'DataArray'對象沒有屬性'reshape'' – user308827

+0

嗯,怎麼樣'np.reshape(xr.DataArray(vba),(720,1440))' ? – Divakar

回答

2

xarray根據數組的大小對齊形狀。因此,如果維度不共享名稱,則乘法將創建所有維度的聯合。

我想象flow_datavba已經命名了不同維度 - 使用.rename匹配的尺寸設置爲匹配名稱

+0

謝謝@Maximilian,對於遲到的回覆感到抱歉。我會嘗試你的答案,然後接受。 – user308827