通过另一个 dask 数组中的一个索引获取 dask 数组中的项目



AB是两个dask数组。 B仅包含一个整数。如何找到A[B]

以下代码似乎有效。有没有更好的方法?

import dask.array as da
from dask import delayed
import numpy as np
idx = da.from_array(np.array([0]), 1) + 10
y = da.arange(12, chunks = 2)
idx2 = delayed(np.ravel)(idx)
z = delayed(da.take)(y, idx2)
print(z)
print(z.compute())

这通常很难做到,因为 B 中的任何元素都可以引用 A 中的任何元素。 我看不出有任何方法可以提高计算效率。 如果 B 很小,那么您可以将其转换为 numpy 数组,然后这将正常工作。 如果B不好,那么你正在尝试做一些非常非常困难的事情。

如果您的问题适合该数据模型,dask.dataframe 中的随机算法可能会为您提供帮助。 这看起来更像是数据帧联接。

最新更新