如何在 python 中不重复地采样?
How to sample without duplication in python?
我想在长度为 100 的 list
中采样 30 个样本。
我可以这样使用 np.random.sample:
import numpy as np
l = list(range(100))
np.random.choice(l, 30)
# np.random.choice(l, 30) may be same with next time np.random.choice(l, 30)
这样可以得到一个样本组,但是我需要多次样本
例如,我需要长度为 10 的列表中的 3 个子列表(长度=3)(只是一个演示)。
重复的样本对我来说毫无意义。这意味着 [1,2,3] 和 [3,2,1] 对我来说是重复的。但是 np.random.choice
可能会为我生产两个。
python中有什么方法可以帮助我吗?或者有什么方法可以更快地比较采样列表?
如果您的列表只有 100 个元素,您可以 random.shuffle
它并获取前 30 个元素。
import random
l = list(range(100))
random.shuffle(l)
print(l[:30])
我想在长度为 100 的 list
中采样 30 个样本。
我可以这样使用 np.random.sample:
import numpy as np
l = list(range(100))
np.random.choice(l, 30)
# np.random.choice(l, 30) may be same with next time np.random.choice(l, 30)
这样可以得到一个样本组,但是我需要多次样本
例如,我需要长度为 10 的列表中的 3 个子列表(长度=3)(只是一个演示)。
重复的样本对我来说毫无意义。这意味着 [1,2,3] 和 [3,2,1] 对我来说是重复的。但是 np.random.choice
可能会为我生产两个。
python中有什么方法可以帮助我吗?或者有什么方法可以更快地比较采样列表?
如果您的列表只有 100 个元素,您可以 random.shuffle
它并获取前 30 个元素。
import random
l = list(range(100))
random.shuffle(l)
print(l[:30])