使用 Xarray 中的多个变量沿特定轴在坐标对上应用函数
Apply function on coordinate pair along particular axis using multiple variables in Xarray
我的 xarray Dataset
具有三个维度,
x
,y
,t
和2个变量,
foo
, bar
我想在每个 x
、y
坐标对的时间序列 t
上应用函数 baz()
baz()
将接受 foo
-s 的数组和 bar
-s 的数组对于给定的 (x
, y
)
我很难理解 handle/distribute 的内置结构是否存在于 xarray、pandas、numpy 或 dask 中。
有什么提示吗?
我目前的方法是编写一个 python 数组迭代器,或者探索 ufunc:
在 python 中迭代某些内容的问题是我必须自己处理并发,并且在迭代中存在开销。
ufunc 的问题是我对它的理解不够,它似乎是一个应用于数组的各个元素的函数,而不是沿轴的子集。
我满怀希望的是寻找原生 xarray 或 daskable 的东西。
听起来(模糊地)您正在寻找 Dataset.reduce
:
ds.reduce(baz, dim=('x', 'y'))
我的 xarray Dataset
具有三个维度,
x
,y
,t
和2个变量,
foo
,bar
我想在每个 x
、y
坐标对的时间序列 t
baz()
baz()
将接受 foo
-s 的数组和 bar
-s 的数组对于给定的 (x
, y
)
我很难理解 handle/distribute 的内置结构是否存在于 xarray、pandas、numpy 或 dask 中。
有什么提示吗?
我目前的方法是编写一个 python 数组迭代器,或者探索 ufunc:
在 python 中迭代某些内容的问题是我必须自己处理并发,并且在迭代中存在开销。
ufunc 的问题是我对它的理解不够,它似乎是一个应用于数组的各个元素的函数,而不是沿轴的子集。
我满怀希望的是寻找原生 xarray 或 daskable 的东西。
听起来(模糊地)您正在寻找 Dataset.reduce
:
ds.reduce(baz, dim=('x', 'y'))