Xarray DataArray相乘报错及空数组问题咨询
两个同维度Xarray DataArray乘法操作失败的原因排查
我需要对两个维度相同的DataArray执行乘法操作:
print(data1) <xarray.DataArray 'var' (lat: 2160, lon: 4320)> [9331200 values with dtype=int8] Coordinates: * lon (lon) float64 -180.0 -179.9 -179.8 -179.7 ... 179.8 179.9 180.0 * lat (lat) float64 89.96 89.88 89.79 89.71 ... -89.79 -89.88 -89.96 print(data2) <xarray.DataArray 'var' (lat: 2160, lon: 4320)> [9331200 values with dtype=float32] Coordinates: * lon (lon) float64 -180.0 -179.9 -179.8 -179.7 ... 179.8 179.9 180.0 * lat (lat) float64 89.96 89.88 89.79 89.71 ... -89.79 -89.87 -89.96
执行data1 * data2时返回如下错误:
ValueError: Cannot apply_along_axis when any iteration dimensions are 0
我已确认两个DataArray维度一致并重新索引,尝试过以下操作:
- 转换
data1的 dtype:data1.astype(np.float64) * data2,仍报相同错误 - 同时转换两者的 dtype:
data1.astype(np.float64) * data2.astype(np.float64),返回空数组:
data3 = data1.astype(np.float64) * data2.astype(np.float64) print(data3) <xarray.DataArray 'var' (lat: 0, lon: 0)> array([], shape=(0, 0), dtype=float64) Coordinates: * lon (lon) float64 * lat (lat) float64
目前仅能通过调用底层numpy数据实现乘法:data3 = data1.data * data2.data,此方法可行,但我想了解纯Xarray方法失败的原因,望告知或指引相关文档。
内容的提问来源于stack exchange,提问作者e5k
相关产品推荐
相关产品推荐

