在dask中用另一个块中的元素替换一个块中的元素

时间:2019-12-08 04:49:44

标签: python arrays image-processing dask numpy-ndarray

如何使用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_blocksmap_overlap函数,但无法完全理解如何针对特定元素将信息从一个块传输到另一个块。在这方面的任何帮助将不胜感激。

0 个答案:

没有答案