如何解决xarray,使用多维坐标索引
我不确定是否可以,但是我想向xarray添加一个新坐标,该xarray的大小与其索引所索引的数据大小相同,但是维数不同。
例如,采用2D数组,一维是日期,另一维是一天中的时间:
data = np.random.rand(5,24)
date_idx = pd.date_range("20200921","20200925")
time_of_day_idx = np.arange(0,np.timedelta64(1,"D"),"h"))
da = xr.DataArray(data,dims=("date","time_of_day"),coords={"date" : date_idx,"time_of_day": time_of_day_idx})
time_idx = np.add.outer(date_idx,time_of_day_idx)
da.assign_coords(time=(("date",time_idx))
但是我真正想做的是将维度堆叠在一起,为同一数组中的时间序列创建一个新的一维坐标,就像这样:
da.assign_coords(time=(("date",time_idx.flatten()))
但是,这样做会引起:
ValueError: dimensions ('date','time_of_day') must have the same length as the number of data dimensions,ndim=1
我知道我可以将2D xarray整形或展平为1D并创建时间序列的新索引,但是能够拥有可以索引到2D xarray的1D坐标确实非常方便。我在堆叠和MultiIndex方面做了一些尝试,但是我发现了相同的问题,每个索引都有访问每个维度的单独值,而不是一个可用于在两个维度上索引位置的单个值。
有人知道这是否可能吗?
解决方法
当前无法使用xarrays。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。