gpt4 book ai didi

python - 对列表进行重复采样

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:23 25 4
gpt4 key购买 nike

我有一个列表 range(n) 并希望在不替换的情况下随机抽取 r 样本,即 np.random.choice(n,r ,替换= False)。但我想经常这样做,有没有一个快速的方法来执行以下命令:

a = [np.random.choice(n,r,replace = False) for i in range(100)]

注意:nr 可以是“large”,s.t. a = np.random.choice(n,(r,100), Replace = True) 并删除具有两个相似索引的那些将是低效的。

最佳答案

我经常使用的一个技巧来替换 np.random.choice(..., replace=False) 的迭代正在生成2D随机数数组,然后使用 argsort/argpartition获取唯一的整数。

因此,与 argsort ,这将是 -

np.random.rand(100,n).argsort(axis=1)[:,:r]

或者,使用 rn 相对较小的数字,我们会使用argpartition为了提高性能,就像这样 -

np.argpartition(np.random.rand(100,n),r, axis=1)[:,:r]

关于python - 对列表进行重复采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com