繁体   English   中英

python dask 包是否支持 numpy 之类的掩码数组?

[英]Does python dask package support numpy like masked arrays?

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

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

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

自 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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM