rau*_*aul 7 python random numpy
我有一个列表列表,如下所示:
a = [[1,2],[2,3]]
Run Code Online (Sandbox Code Playgroud)
我想创建一个随机列表,替换给定的大小a.该numpy.random.choice()方法仅接受1D数组.我可以编写自己的函数来执行此操作,但是已经有一种优化的方法吗?
预期产量:
[[1,2],[1,2],[2,3],[2,3]]
// the size (4 here) has to be a parameter passed to the function
Run Code Online (Sandbox Code Playgroud)
Bla*_*ing 11
您可以重复调用标准库random.choice().没必要numpy.
>>> list_of_lists = [[1, 2], [2, 3]]
>>> sample_size = 4
>>> [random.choice(list_of_lists) for _ in range(sample_size)]
[[1, 2], [2, 3], [1, 2], [1, 2]]
Run Code Online (Sandbox Code Playgroud)
这是一种替代方案random.sample(),无需替换,可让您选择大于原始种群大小的"样本".
使用numpy:
size = 4
a = np.array([[1,2],[2,3]])
b = np.random.randint(len(a), size = size)
a[b,:]
Out[93]:
array([[2, 3],
[2, 3],
[2, 3],
[1, 2]])
Run Code Online (Sandbox Code Playgroud)