如何使用dask
替换一个块中的元素/其他块中的元素。我有尺寸为1000 x 1000 x 1000的3D阵列,但我想如果我能对2D阵列获得一些帮助,我也可以将其推算为3D阵列。在下面提到的代码a
中,我以2D数组为例,我期望最终输出像result
一样。
import dask.array as da
import numpy as np
a = np.array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 99., 0., 0.],
[ 0., 2., 0., 0., 3., 0.],
[ 0., 95., 0., 0., 34., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]])
d = da.from_array(a, chunks=(3,3))
result = d.compute()
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 1., 0., 0.],
[ 0., 2., 0., 0., 3., 0.],
[ 0., 2., 0., 0., 3., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]])
我研究了map_blocks
和map_overlap
函数,但无法完全理解如何针对特定元素将信息从一个块传输到另一个块。在这方面的任何帮助将不胜感激。