是否有办法覆盖某些操作。
import dask
import numpy as np
a = np.zeros((10,10))
a = dask.delayed(lambda x : x*2)(a)
我希望a[0]
返回一个数字(而不是必须调用a[0].compute()
)。
这可能吗?
上下文是我想要一系列图像(3D数组),并运行如下操作:
imgs2 = imgs - 1
imgs3 = imgs*mask
然后像imgs3[0]
这样的操作显式运行imgs3[0].compute()
。
但是,我现在看到这个方法有很多缺点,我想删除这篇文章。首先,这是非常有限的。索引诸如imgs3[:,:, 10]
(所有列)之类的内容也可能必须以计算结果为最终结果。
答案 0 :(得分:1)
这似乎对我很好
In [1]: import dask
...: import numpy as np
...: a = np.zeros((10,10))
...: a = dask.delayed(lambda x : x*2)(a)
...:
In [2]: a[0]
Out[2]: Delayed('getitem-4eccd4e43153cac99d8e6d280cc1ad9c')
In [3]: a[0].compute()
Out[3]: array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])