A
和B
是两个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())
答案 0 :(得分:1)
这通常很难做到,因为B中的任何元素都可以引用A中的任何元素。我没有看到任何方法使这种计算效率。如果B很小,那么你可以将它转换成一个numpy数组,然后这将工作正常。如果B不好则你会尝试做一些非常困难的事情。
如果您的问题符合该数据模型,那么dask.dataframe中的重排算法可能会对您有所帮助。这看起来更像是数据帧连接。