【问题标题】:Value error in multiplying xarray variable with 2D numpy array将 xarray 变量与 2D numpy 数组相乘时的值错误
【发布时间】:2016-06-06 03:33:05
【问题描述】:
import xarray as xr
xr.open_dataset(path_netcdf, chunks={'time': 10})
flow_data = hndl_tran['val']
new_arr = flow_data * vba

我收到此错误:

*** ValueError: total size of new array must be unchanged

这是 2 个数组的形状:

flow_data.shape
(1165, 720, 1440)

vba.shape
(720L, 1440L)

我该如何解决这个错误?

【问题讨论】:

    标签: python numpy pandas python-xarray


    【解决方案1】:

    在进行乘法运算之前,将您的 numpy 转换为 xarray 对象:

    flow_data = xr.DataArray(hndl_tran['val'])
    

    反之亦然

    flow_data = np.array(flow_data)
    

    【讨论】:

    • hmm 不知道是什么原因造成的,你可以换个方式试试,将 xarray 转换为 numpy 数组吗?
    • 那行不通,如果我尝试将 xarray 转换为 numpy 数组,则生成的 numpy 数组太大而无法放入内存。感谢您的关注:)
    【解决方案2】:

    在@maxymoo 的回答的基础上,您希望转换为DataArray但也提供暗淡,因此对其他数组的操作将有效flow_data = xr.DataArray(hndl_tran['val'], dims=['date', 'id']),将日期和ID 替换为适当的名称

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多