Мне нужна помощь в отношении мутации 10-битного двоичного числа в массиве 1000 x 50. В каждом массиве содержится 50 чисел, эти числа являются 10-битной двоичной версией.Например, ['1101011110']
Мне нужно мутировать 5% из 50 (10-битных чисел). Следовательно, 25 из 500 цифр
Мой набор данных имеет следующий вид:
print(NewPop)
print(NewPop.shape)
[['0100110010' '0011011110' '0101111111' ... '1001001010' '0011000110'
'0100001110']
['0001001000' '0011000111' '0010010001' ... '1001001010' '0011000110'
'0100001110']
['1110111101' '0110110100' '0000111110' ... '1001001010' '0011000110'
'0100001110']
...
['0000100110' '1101111010' '1110110001' ... '0100010101' '0111001100'
'1010001111']
['1101111100' '0011001011' '0101100101' ... '0100010101' '0111001100'
'1010001111']
['1100111011' '1110000110' '1101101001' ... '0100010101' '0111001100'
'1010001111']]
(1000, 50)
Моя последняя цель - сделать так, чтобы он выбирал 25 случайных точек и менял их на 0 или 1, однако на этом предварительном этапе я пытаюсь получить n-ые цифры в массиве
, используя
test=NewPop[[0],[1]]
print(test)
['0011011110']
Я могу получить доступ к определенному номеру в массиве
numstr=str(test)
numstr[2:12][2]
Преобразовав в строку, я могу получить доступ к определенной n-й цифре, но это довольно запутанный процесс, особенно если япоместите этот процесс в цикл
У кого-нибудь есть какие-либо другие предложения относительно этого процесса мутации / доступа к n-й цифре
Спасибо