python dask包支持像掩码数组一样的numpy吗?

时间:2016-12-06 08:15:44

标签: python dask masked-array

有没有办法使用Python Dask包来模仿Numpy蒙版数组并考虑掩码进行计算,比如Numpy:

import numpy as np

data = np.array([0, 1, 9999, 2, 1, 0, 9999])
value = 9999
mdata = np.ma.masked_where(data == value, data)  
result = (mdata * 2 + 10)

在包文档中,我发现dask.arrays相当于Numpy ndarrays并且没有掩码。另外,用另一个阵列切片似乎也不可能。因此,我找不到仅对数组的部分进行计算的方法。

2 个答案:

答案 0 :(得分:0)

你是对的,截至2016年12月,Dask.array不支持屏蔽数组。

此外,Dask.array需要知道每个步骤中每个块的形状,因此不支持使用另一个dask数组(这需要我们知道该点的值)进行切片。

答案 1 :(得分:0)

自 2017 年 5 月以来,Dask 支持对数组进行基本操作的掩码数组 (git link)。

下面的代码片段产生与 numpy 相同的结果。

import dask
import dask.array as da    
    
data = da.array([0, 1, 9999, 2, 1, 0, 9999])
value = 9999
mdata = da.ma.masked_where(data == value, data)  
result = (mdata * 2 + 10).compute()