达阵数组的笛卡尔乘积

时间:2018-10-25 04:30:17

标签: pandas dask

我想创建几个数组的笛卡尔积。例如,在熊猫中:

a1 = np.arange(0,30.)
a2 = np.arange(0,30.)
a3 = np.arange(0,30.)
a4 = np.arange(0,30.)
a5 = np.arange(0,30.)

df = pd.MultiIndex.from_product([a1,a2,a3,a4,a5]).to_frame(index=False)

如果再添加一个数组(a6),则内存将开始用尽。因此,我想在Dask中这样做:

p = itertools.product(*(a1,a2,a3,a4,a5))
da = dd.from_array(np.array(list(p)), chunksize=50000, columns=[0,1,2,3,4])

但是,由于将iterable转换为列表,然后转换为numpy数组,因此上述方法仍使用大量内存。必须有更好的方法来实现这一目标。

0 个答案:

没有答案