【问题标题】:Incorrect shape of array after xarray multiplication operationxarray乘法运算后数组的形状不正确
【发布时间】:2016-06-06 04:52:13
【问题描述】:

根据Value error in multplying xarray variable with 2D numpy array

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 相同的形状。我该怎么做?

【问题讨论】:

  • xr.DataArray() 可能正在做一些有趣的事情。所以,为了更好地控制事情并确保广播的暗角对齐,我认为你可以这样做flow_data * (xr.DataArray(vba).reshape(720,1440))
  • 感谢@Divakar,我在重塑时收到此错误:AttributeError: 'DataArray' object has no attribute 'reshape'
  • 嗯,np.reshape(xr.DataArray(vba),(720,1440)) 怎么样?
  • 嗯,我收到np.resha[pe... 的此错误:*** ValueError: total size of new array must be unchanged

标签: python numpy pandas python-xarray


【解决方案1】:

xarray 根据数组的尺寸对齐形状。因此,如果维度不共享名称,则乘法将创建所有维度的并集。

我想 flow_datavba 有不同的命名尺寸 - 使用 .rename 将匹配尺寸设置为匹配名称

【讨论】:

  • 感谢@Maximilian,抱歉回复晚了。我将尝试您的答案,然后接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
相关资源
最近更新 更多