У меня действительно большой список.Представьте, что это выглядит примерно так:
test = ['llama', 'cow', 'horse', 'fish', 'sheep', 'goat', 'cat', 'dog']
Я хочу выбрать из этого списка много раз.Я хочу, чтобы каждый образец был взят без замены.В этом случае я хочу избегать циклов for.
Я видел много решений в StackOverflow, которые близки, но не совсем то, что мне нужно здесь.Скажем, каждый образец, который мне нужен, должен был иметь размер 3. Если бы я хотел сделать выборку с заменой, это сработало бы:
np.random.choice(test, size=(100, 3))
Это дало бы мне 100 строк с выборкой по 3 в каждой строке.Проблема в том, что в каждой конкретной строке могут быть повторы, и я не могу попросить ее сделать выборку без замены, потому что 300 > len(test)
.
Есть ли способ обойти это, который поддерживает случайность?Я видел потенциальные решения, использующие np.argsort, но я не уверен, что они все еще на самом деле случайные, учитывая, что сортировка уже выполнена.