【问题标题】:Does python dask package support numpy like masked arrays?python dask 包是否支持像掩码数组一样的 numpy?
【发布时间】:2017-04-20 19:35:27
【问题描述】:

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

【问题讨论】:

    标签: python dask masked-array


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。然而,掩模支持对于 dask 在遥感卫星图像处理中的应用非常有用。在pytroll 社区中,我们期待在 dask 中提供此功能。我将尝试在 Github 问题跟踪器上添加功能请求。
    • 我们在 biggus 中有一些掩码的核外算法,我一直想花一些时间在 dask 中实现它们。
    【解决方案2】:

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

    下面的代码 sn-p 产生与 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()
    

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 2019-03-07
      • 1970-01-01
      • 2023-03-11
      • 2021-06-24
      相关资源
      最近更新 更多