有效的笛卡尔积,不包括项

问题描述 投票:2回答:2

我正在尝试将11个值的所有可能的组合重复80次,但过滤掉总和大于1的情况。下面的代码实现了我正在尝试执行的工作,但需要花费几天的时间才能运行:

import numpy as np
import itertools

unique_values = np.linspace(0.0, 1.0, 11)

lst = []
for p in itertools.product(unique_values , repeat=80):
    if sum(p)<=1:
        lst.append(p)

上面的解决方案可以工作,但是需要太多时间。同样,在这种情况下,我将不得不定期将“ lst”保存到磁盘中并释放内存,以避免出现任何内存错误。后面的部分很好,但是代码需要几天(或几周)才能完成。

还有其他选择吗?

python itertools cartesian-product
2个回答
0
投票

OP仅需要10的分区,但这是我在此期间编写的一些通用代码。


0
投票

我不确定这是否有效,但是您可以使用此类生成器,并根据需要采用您的值:

© www.soinside.com 2019 - 2024. All rights reserved.