从随机生成的数字中抽样?

Han*_*a S 6 python random numpy

有一个程序需要从分布在[1, 500]. 如何从输出中获取随机样本?

我写了以下内容:

N = 1000
x = 1 + 500 * np.random.rand(N) 
sp_x = random.sample(x, 100)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

TypeError: Population must be a sequence or set.  For dicts, use list(d).
Run Code Online (Sandbox Code Playgroud)

Bla*_*ven 3

从您的代码中,结果x是一个 numpy 数组。检查type(x)输出:numpy.ndarray

但该函数random.sample(sequence, k)只能接受 a listtuplestring、 或的序列set。所以你的代码可以是:

import random
N = 1000
x = 1 + 500*np.random.rand(N) 
x = list(x)
sp_x = random.sample(x, 100)
print(len(sp_x))
Run Code Online (Sandbox Code Playgroud)

输出:100