python-2.7 - 项目分配给 Python dask 数组对象

标签 python-2.7 dask

我创建了一个 Python dask 数组,我正在尝试修改数组的一部分,如下所示:

import numpy as np
import dask.array as da

x = np.random.random((20000, 100, 100)) # Create numpy array
dx = da.from_array(x, chunks=(x.shape[0], 10, 10)) # Create dask array from numpy array

dx[:50, :, :] = 0 # Modify a slice of the dask array

这种修改 dask 数组的尝试会引发异常:
TypeError: 'Array' object does not support item assignment

有没有办法在不引发异常的情况下修改 dask 数组切片?

最佳答案

当前 dask.array不支持项目分配或任何其他变异操作。

在上面的情况下,我建议用零连接

In [1]: import dask.array as da

In [2]: dx = da.random.random((20000 - 50, 100, 100), chunks=(None, 10, 10))

In [3]: z = da.zeros((50, 100, 100), chunks=(50, 10, 10))

In [4]: dx2 = da.concatenate([z, dx], axis=0)

In [5]: dx2
Out[5]: dask.array<concate..., shape=(20000, 100, 100), dtype=float64, chunksize=(50, 10, 10)>

In [6]: (dx2 == 0)[0:100, 0, 0].compute()
Out[6]: 
array([ True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False, False], dtype=bool)
da.where(condition, iftrue, iffalse)函数在解决经常需要突变的情况下也非常有用。

关于python-2.7 - 项目分配给 Python dask 数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36142892/

相关文章:

django - 错误: invalid command 'bdist_wheel'

用于访问实例变量的 Python 方法装饰器

python - python 中的 Dateutil 解析错误返回错误的值

parsing - 使用 dpkt 库从 DNS 响应数据包中提取域名

Dask read_json 元数据不匹配

pandas - 将 spark 数据帧转换为 dask 数据帧

python - 使用 SQLAlchemy 删除没有相关记录的行

python - 使用 xarray,如何在多维数据集上并行化一维操作?

python - 将 SQL 查询读入 Dask DataFrame

python-3.x - Dask - 如何取消和重新提交停滞的任务?