代码之家  ›  专栏  ›  技术社区  ›  James Adams

dask:使用典型的numpy索引更新dask数组中的值时发生分配错误

  •  0
  • James Adams  · 技术社区  · 7 年前

    我正在将代码转换为使用dask数组而不是numpy数组。

    我已经安装了DASK版本0.19.4。

    我有一个已被等效的DASK数组替换的数组:

    # this used to be a numpy array, created like so:
    # da = np.zeros((total_months,))
    da = dask.array.zeros((total_months,), chunks=(-1))
    

    当我点击下面的代码行(以前在数组是numpy数组时工作)时,我得到一个项分配错误:

    for k in range(total_months):
        da[k] = awc - s0
    
    NotImplementedError: Item assignment with <class 'int'> not supported
    

    awc s0 都是上面的浮动标量。

    我的理解是,普通的numpy风格的切片和数组元素索引在dask中可以正常工作,但这并不是在这里发生的。有人能评论一下我误入歧途了吗?提前谢谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  1
  •   MRocklin    7 年前

    对的。不支持整数项分配。

    通常,使用for循环在大型数组上迭代的工作流是不可伸缩的。DASK阵列不尝试支持它们。