1

有没有办法使用 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 并且没有掩码。此外,似乎也不可能用另一个数组切片。因此,我找不到仅对数组的一部分进行计算的方法。

4

2 回答 2

1

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

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

于 2016-12-06T12:31:15.473 回答
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()
于 2021-06-04T17:07:14.260 回答