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

时间:2018-01-10 22:18:59

标签: python 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())

1 个答案:

答案 0 :(得分:1)

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

如果您的问题符合该数据模型,那么dask.dataframe中的重排算法可能会对您有所帮助。这看起来更像是数据帧连接。