磁盘阵列逐点数组操作的转换

2024-09-29 17:55:05 发布

您现在位置:Python中文网/ 问答频道 /正文

“daskify”用一般numy操作编写的逐点函数是否可行?你知道吗

案例+部分解决方案:
例如,参见这里:https://github.com/SciTools/iris/pull/2964

关键是我们希望应用另一个库中的通用数组操作,但它只能在实际的numpy数组上操作。
然而,我们希望它在此操作中对现有的dask数组进行操作,并产生一个延迟结果,从而可以有效地计算子数组。
这就是为什么它使用da.from_array。。。你知道吗

备选方案:
您可以改为使用deferred,但如果使用deferred,则每次都必须计算整个参数,即使结果是子索引的。你知道吗

或者你可以用frompyfunc http://dask.pydata.org/en/latest/array-api.html#dask.array.frompyfunc
但它使用的是标量函数,而不是数组函数。
这是低效的,特别是当它返回一个对象数组而不是数字时。你知道吗

剩余问题:
在上述部分解决方案中,缺少的部分是“看穿”不透明点计算包装器的能力,因此其dask参数对整个图形可见。
? 也许在Dask中有一种方法可以公开当前隐藏在这个from_array(ArraylikeWrapper(dask_array))结构中的dask_array参数?你知道吗


Tags: 函数fromhttpsgithubcom参数数组解决方案
1条回答
网友
1楼 · 发布于 2024-09-29 17:55:05

你试过da.map_blocks吗?你知道吗

x = x.map_blocks(func)

Dask还支持带有__array_ufunc__协议的NumPy ufuncs,如果您能够创建这些协议的话(尽管map_blocks可能更容易)。你知道吗

相关问题 更多 >

    热门问题