将相关系数函数从NumPy转换为Dask

时间:2016-12-21 21:36:34

标签: python numpy distributed dask

我正在尝试通过将方法从thunder(使用Spark)转换为等效的numpy版本来评估dask,但我不确定如何使用dask / distributed编写它。

在雷声中,我可以拍摄一堆图像,将其转换为一系列图像,并与某些信号相关联:

imgs = thunder.images.fromrandom((10, 900, 900))
series = imgs.toseries()
signal = series[5, 5, :]
correlated = series.correlate(signal)

numpy版本如下所示:

series = numpy.random.rand(900, 900, 10)
signal = series[5, 5, :]

reshaped = series.reshape(900 * 900, 10)

correlated = numpy.asarray(
    map(lambda x: numpy.corrcoef(x, signal)[0, 1], reshaped))
)
final = correlated.reshape(900, 900)

我正在寻找一些关于如何将其转换为特别分布的内容的提示。

1 个答案:

答案 0 :(得分:1)

或许类似以下内容?

import dask.array as da
import numpy as np

imgs = da.random.random((10, 900, 900), chunks=(1, 900, 900))
reshaped = imgs.reshape((10, 900 * 900))

如果您想将图片相互关联

result = da.corrcoef(reshaped)
result.compute()

或反对其他信号

signal = np.random.random(900 * 900)
result = reshaped.map_blocks(np.corrcoef, signal, dtype=signal.dtype)
result.compute()

但是,我对您的申请不太熟悉,因此上述回复可能存在缺陷。