Python:dask数组的点积

时间:2016-03-25 14:12:38

标签: python hdf5 h5py dask

我正在尝试做非常大的2个dask阵列X(35000 x 7500)和Y(7500 x 10)的点积。由于点积也非常大,我将它存储在hdf5

f = h5py.File('output.hdf5')
f['output'] = X.dot(Y)

但即使它差不多1小时,第二个命令也没有给出任何输出。怎么了?技术更快吗?是否存在" chunks"在创建X和Y时?

1 个答案:

答案 0 :(得分:1)

考虑.to_hdf5方法或da.store函数。

>>> X.dot(Y).to_hdf5('output.hdf5', 'output')

>>> output = f.create_dataset('/output', X.dot(Y).shape, X.dot(Y).dtype)
>>> da.store(X.dot(Y), output)

to_hdf5方法对您来说可能更容易。 da.store方法也适用于其他格式。

H5Py中的__setitem__功能(当您说f['output'] = ...被硬编码为使用NumPy数组时,您正在使用的功能。

Here is the appropriate section in the documentation.