【发布时间】:2019-04-22 01:16:13
【问题描述】:
我正在使用 python-3.x,我正在尝试生成索引编号列表并将它们打乱以便稍后使用它们从样本中选择随机值,其中该样本将具有两个变量样本大小和维度编号,但是在这里我如何生成索引列表以及我将它们打乱:
dimension = 5
sample_size = 100
generate_indexes = itertools.combinations(range(sample_size),dimension)
all_indexes = list(generate_indexes)
# here I do the shuffle
random.shuffle(all_indexes)
当我增加维度编号时的问题,即使维度编号为5,也需要很长时间才能给出结果,这需要很长时间或者不会继续。
有什么方法可以加快速度?
因为我有一个包含值的多维样本,我想根据 all_indexes 从该样本中选择随机数量的值...
【问题讨论】:
-
您正在生成一个包含 75287520 个元素的列表以进行随机播放 - 这可能不会很快...您是否确实需要为您想要实现的目标执行此操作?
-
是的,我需要 20 个维度来解决我的问题,而不是 5 个,我感谢我做的方式不正确。
-
是的,您绝对应该重新考虑您的方法。即使没有随机播放,这也会在你达到 20 个维度之前耗尽你的内存。
-
是列表创建消耗了整个时间。一些生成器方式可能会更快。
-
@Austin 我有同样的想法并对其进行了测试。 shuffle 比创建列表花费的时间要长很多。
标签: python-3.x list random shuffle