python-3.x - 在 dask 数组的切片上运行函数
问题描述
我一直在试图弄清楚如何在 dask 数组的切片上执行函数。例如,如果我创建以下 dask 数组:
import numpy as np
import dask.array as da
x = da.random.normal(10, 0.1, size=(200, 4),chunks=(100, 100))
并定义函数:
#test function
def test(x,y,z=4):
return x*y+z, z*y
执行
a,b = test(x[:,0],x[:,1])
a.compute()
b.compute()
按预期工作,但如果我尝试将这些结果分配回 x,则函数失败:
x[:,0],x[:,1] = test(x[:,0],x[:,1])
抛出 NotImplementedError: Item assignment with not supported 有没有一种方法可以解决这个问题来执行此操作?谢谢你,
解决方案
对于 Dask,突变不是正常的工作流程:您将希望创建输入并返回新值的函数,例如,
def test(x,y,z=4):
return x*y+z, z*y
a, b = test(x[:, 0], x[:, 1])
out = da.hstack([a.reshape(200, 1), b.reshape(200, 1),
x[:, 2].reshape(200, 1), x[:, 3].reshape(200, 1)])
(或者
out = da.vstack([a, b, x[:, 2], x[:, 3]]).T
)
推荐阅读
- javascript - 使用 HTML 在 Android 消息应用程序上禁用链接预览
- git - GitKraken:克隆 0%
- main - 主子程序
- javascript - 当没有任何东西表明它是一个时,输入字段被视为密码字段
- sql-server - SQL Server 还原 BACPAC 在缺少用户定义的表类型时引发错误
- python-3.x - 变量中的 Unicode 字符名称
- python - 如何在 BGE 的 python 脚本中获取对象动作/动画的名称?
- reactjs - 从 mongodb 设置选择菜单的默认值
- apache - 需要 Apache 反向代理帮助
- c# - Web.config 运行时/legacyCorruptedStateExceptionsPolicy 设置不起作用