You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:42:10