【发布时间】:2021-09-09 13:44:50
【问题描述】:
我有 N 个变量(定义 N 维空间),它们的定义范围(正态或均匀分布在给定范围内):
每个变量都由一个包含其可能整数值的列表定义。
v1_range = [1, 2, 3, 4, 5, 6]
v2_range = [10, 20, 30, 40, 50, 60]
v3_range = [100, 200, 300, 400, 500]
v4_range = [15, 16, 17, 18]
我想生成 K 个列表(numpy 数组/向量..),每个列表包含给定范围内的一个随机数,没有重复项。 所以每个列表中的第 i 个元素是从第 i 个范围列表中选择的。
示例(K = 6,来自给定范围):
output = [
[1, 20, 300, 15],
[5, 10, 200, 15],
[3, 60, 100, 18],
[4, 30, 200, 16],
[4, 40, 100, 17],
[2, 30, 400, 15],
]
最好的方法是什么,使用numpy.random() 或scipy 假设N 维空间可能非常大(~13 个范围列表,每个包含~20 个值)并且不允许重复?
[编辑] 范围列表中的重复条目很好,但我不想在结果列表列表中有两个重复/完全相同的列表,例如:
索引 0、2 重复...
res = [[ 4, 40, 400, 18],
[ 4, 60, 400, 17],
[ 4, 40, 400, 18]]
【问题讨论】:
标签: python arrays numpy scipy distribution