Могу ли я рандомизировать список в Python, используя процент? - PullRequest
0 голосов
/ 28 мая 2020

Недавно я работал над проектом, в котором мне нужно разместить символы в случайном порядке с ограничением, например, если у меня есть список с 25000 "_" в нем, мне нужно установить 4% (1000) из этих "_" в "X" в случайных позициях.

Список, с которым я работаю, является двумерным массивом.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

В случае, если другие неправильно истолковали вопрос, вы можете использовать np.random.choice, чтобы получить образцы idx нужного вам символа. Например, вы можете написать что-то вроде

char_idxs = np.where(ARR == interested_char)
if len(char_idxs) > max_length:
    difference = len(char_idxs) - max_length
    replace_idxs = np.random.choice(char_idxs,size=difference)
ARR[replace_idxs] = X
0 голосов
/ 28 мая 2020

Создать список с необходимым количеством каждого символа. Затем используйте random.shuffle() для рандомизации.

import random

l = 1000 * ["X"] + 24000 * ["_"]
random.shuffle(l)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...