Я пытаюсь решить следующую упрощенную задачу. У меня есть массив с данными и два массива с сохраненными индексами начала и конца. Я хотел бы удвоить значения набора данных, попадающие между индексами (например, между start [0], end [0] и start [1], end [1] et c). Я попробовал вложенный l oop следующим образом:
data = np.array([0,1,2,8,4,5,6,5,4,5,6,7,8])
start = np.array([0,5,7])
end = np.array([3,6,9])
new_data = np.zeros(len(data))
for i in range(len(start)):
for j in range(len(data)):
if (j >= start[i]) & (j <= end[i]):
new_data[j] = data[j]*2
else:
new_data[j] = data[j]
Результат должен быть [0,2,4,16,4,10,12,10,8,10,6,7,8 ], и все же код возвращает: [0. 1. 2. 8. 4. 5. 6. 10. 8. 10. 6. 7. 8.]
Только часть между последними индексами правильный. Есть идеи почему? А что, если я хочу утроить значения, не удовлетворяющие выражению if?