【发布时间】:2017-01-31 10:24:18
【问题描述】:
我有一些带有暗淡 'time', 'lat', 'lon' 的数组和一些只有 'lat', 'lon' 的数组。我经常必须这样做才能使用 2d(经纬度)掩码来屏蔽与时间相关的数据:
x.data[:, mask.data] = np.nan
当然,计算按预期广播。如果y 是 2d lat-lon 数据,它的值会广播到 x 中的所有时间坐标:
z = x + y
但索引并没有像我预期的那样广播。我希望能够做到这一点,但它会引发 ValueError: Buffer has wrong number of dimensions:
x[mask] = np.nan
最后,xr.where 似乎按预期跨时间坐标广播掩码的值,但您不能以这种方式设置值。
x_masked = x.where(mask)
那么,我在这里是否缺少一些有助于使用缺少尺寸(并且需要广播)的布尔掩码设置值的东西?我在顶部提供的选项真的是这样做的方法吗(在这种情况下,我还不如只使用标准的 numpy 数组......)
【问题讨论】:
-
您能在问题中添加一些示例数据吗?这将使理解需求变得更加容易,并为回答者提供一些数据。
标签: python numpy python-xarray