如何解决给定 N 个变量和范围,生成 K 个随机 numpy 数组
我有 N 个变量(定义 N 维空间),以及它们定义的范围(在给定范围内正态或均匀分布):
每个变量都由一个包含其可能的整数值的列表定义。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="testSelect">
</select>
我想生成 K 个列表(numpy 数组/向量..),每个列表包含一个来自给定范围的随机数,没有重复。 所以每个列表中的第 i 个元素是从第 i 个范围列表中选择的。
示例(K = 6,来自给定范围):
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]
最好的方法是什么,使用 output = [
[1,15],[5,10,[3,60,100,18],[4,16],17],[2,]
或 numpy.random()
假设 N 维空间可能非常大(约 13 个范围列表,每个包含约 20 个值)并且没有重复项允许吗?
[编辑] 范围列表中的重复条目很好,但我不想在结果列表中包含两个重复/完全相同的列表,例如:
索引 0、2 重复...
scipy
解决方法
简单的迭代会起作用吗?我认为对于 13 个列表 x 20 个值,它会工作得很好。
import random
d = {
"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]
}
def give(k):
out = [[] for i in range(k)]
for l in out:
for i in d.keys():
l.append(random.choice(d[i]))
return out
例如:
>>> give(6)
[[5,500,15],[1,60,16],[5,18],[2,100,[6,16]]
或者,使用 numpy
>>> import numpy as np
>>> np.array(give(6))
array([[ 4,[ 4,17],[ 5,10,18]])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。