Мне было интересно, есть ли более питонический (и эффективный) способ сделать следующее:
MAX_SIZE = 100
nbr_elements = 10000
y = np.random.randint(1, MAX_SIZE, nbr_elements)
REPLACE_EVERY_Nth = 100
REPLACE_WITH = 120
c = 0
for index, item in enumerate(y):
c += 1
if (c % REPLACE_EVERY_Nth == 0):
y[index] = REPLACE_WITH
Таким образом, в основном я генерирую группу чисел от 1 до MAX_SIZE-1
, а затем хочу заменить каждый элемент REPLACE_EVERY_Nth
на REPLACE_WITH
. Это прекрасно работает, но я думаю, что это может быть как-то сделано без использования enumerate
?
Я думал, что-то вроде этого (что я знаю, неправильно, потому что я заменяю оригинал у с индексами у):
y = map(lambda x: REPLACE_WITH if not x%REPLACE_EVERY_Nth else x, range(len(y)))
есть ли способ сделать по модулю индексы, но заменить значения?