我正在编写一个程序,我使用不同的方法来拟合数据集,在最后一步中,我想对模型进行分布,然后根据验证集对其进行测试以选择最佳分布。为此,我需要总计为1的列表(所有模型的总重量)。在3个型号的情况下,我使用以下代码:
Grid = np.arange(0,1.1,0.1)
Dists = [[i,j,k] for i in Grid for j in Grid for k in Grid if i+j+k==1]
我现在正在寻找一种方法来将其推广到任意数量的模型,比如说d,而不事先指定d是什么。我看过np.tensordot和np.outer,但无法找到一种方法来使这项工作。任何想法,将不胜感激。 干杯, 利奥
答案 0 :(得分:2)
您正在寻找itertools.product
:
from itertools import product
Dists = [list(p) for p in product(Grid, repeat=3) if sum(p) == 1]