在numpy中是否有一些方便的Matlab函数randperm实现,从完全M(M> K)项中随机选择K项,并返回所选择的indice?
在Matlab中,
randperm(100,10)
ans =
82 90 13 89 61 10 27 51 97 88
答案 0 :(得分:3)
是的,使用numpy.random.choice
function。
>>> numpy.random.choice(100, 10, replace=False)
array([89, 99, 27, 39, 80, 31, 6, 0, 40, 93])
请注意,结果范围是0到M-1。如果您需要1到M的MATLAB,请将1
添加到结果中:
>>> numpy.random.choice(100, 10, replace=False) + 1
array([ 28, 23, 15, 90, 18, 65, 86, 100, 99, 1])