[英]Flatten/ravel/collapse 3-dimensional xr.DataArray (Xarray) into 2 dimensions along an axis?
[英]python xarray.sel unstable for xr.dataArray of strings
我有一個名為 IDB 的 xr.Dataset,它有一個名為“affiliations”的 DataArray,由字符串組成:
IDB.affiliations
<xarray.DataArray 'affiliations' (stations: 92)>
array(['Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
..............
在我 select 使用 Dataset.sel() 的子集之后,我得到:
IDB = IDB.sel({'stations':a_subset_of_stations})
IDB.affiliations
<xarray.DataArray 'affiliations' (stations: 24)>
array([array('Instituto_Argentino_de_Oceanografia', dtype=object),
array('Instituto_Argentino_de_Oceanografia', dtype=object),
array('Instituto_Argentino_de_Oceanografia', dtype=object),
array('Instituto_Argentino_de_Oceanografia', dtype=object),
..................
因此,我得到的不是字符串數組,而是包含字符串的 arrays 數組。 這使我無法將其保存到 netcdf..
IDB.to_netcdf(pathOut,mode='w',engine='netcdf4')
ValueError:無法推斷變量“隸屬關系”的數據類型; xarray 無法序列化任意 Python 對象
探索這個錯誤,我發現如果我偶爾顯式訪問相應數據數組的值,它就會消失。
我所做的就是故意訪問數據集中所有數據數組的值,並且錯誤停止被重現:
## xarray BUG
for variable in list(IDB.variables.keys()):
spare = IDB[variable].values
## Now, apply sel...
IDB = IDB.sel({'stations':a_subset_of_stations})
IDB.affiliations
<xarray.DataArray 'affiliations' (stations: 24)>
array(['Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
'Instituto_Argentino_de_Oceanografia',
希望這對某人有用...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.