如何从python itertools产品中随机抽取样本?

如何从python itertools产品中随机抽取样本?,python,combinations,itertools,Python,Combinations,Itertools,我有一个笛卡尔积,它是从itertools.product获得的。 组合的数量是353736000甚至更大。由于时间限制,我无法将此结果转换为列表 我想从这数百万个随机组合中获得10个,然后成为遗传算法的总体,我需要它在几毫秒内完成 可能吗?实际上不需要获得笛卡尔积;对于每个向量,只需随机选择一个值。由于每个向量都是一个列表: import random numberList = [111,222,333,444,555] print("random item from list i

我有一个笛卡尔积,它是从itertools.product获得的。 组合的数量是353736000甚至更大。由于时间限制,我无法将此结果转换为列表

我想从这数百万个随机组合中获得10个,然后成为遗传算法的总体,我需要它在几毫秒内完成


可能吗?

实际上不需要获得笛卡尔积;对于每个向量,只需随机选择一个值。由于每个向量都是一个列表:

import random

numberList = [111,222,333,444,555]
print("random item from list is: ", random.choice(numberList))

这将为列表返回一个随机元素。同样的原理也可以应用于其他载体来构建染色体。

你可以多次进行随机笛卡尔积,而不是进行完整的笛卡尔积,然后从中选取。为什么不从每个轴随机取样?确切地说,从每个轴(载体)随机取样。我被我最初的实现误导了,它的目标是获得整个搜索空间以获得最佳性。当数量级为10**8时,则问题必须通过启发式解决,获得整个搜索空间是没有用的。通过从每个向量中随机采样,每个色度体将获得其每个分量值。