【发布时间】:2021-08-17 01:44:58
【问题描述】:
我有一个具有 3 个维度(“时间”、“x”和“y”)的数据集。我想沿时间维度应用这个函数foo:
def foo(arr):
lo, hi = np.percentile(arr, (1,99))
arr = np.clip(arr, lo, hi)
arr = (arr - lo) / (hi - lo)
return arr
基本上,我想用foo之类的函数在时间维度上缩放每个“图像”
在 numpy 中,我可以这样做:
for i in range(data.shape[0]):
data[i] = foo(data[i])
但由于数据存储在 dask 数组中,我无法写回修改后的数据。我遇到了这个错误:
TypeError: this variable's data is stored in a dask array, which does not support item assignment. To assign to this variable, you must first load it into memory explicitly using the .load() method or accessing its .values attribute.
如何在 xarray/dask 中执行此操作?
【问题讨论】:
标签: python-3.x data-science dask python-xarray