Вы можете создать функцию, которая использует входной массив и индексный массив для этого, как показано ниже:
import numpy as np
def remove_by_index(input_array, indexes):
for i,_ in enumerate(input_array):
if i not in indexes:
input_array[i] = 0
return input_array
input_array = np.array([483, 39, 18, 999, 20, 48])
indexes = np.array([2, 3])
new_out = remove_by_index(input_array, indexes)
expected_out = np.array([0, 0, 18, 999, 0, 0])
print(new_out == expected_out) # to check if it's correct
Редактировать
Вы можете также используйте понимание функции внутри функции, что было бы лучше:
def remove_by_index(input_array, indexes):
return [input_array[i] if (i in indexes) else 0 for i,_ in enumerate(input_array)]
Это , а не , как указано в комментариях, наиболее эффективный способ сделать это, выполняя итерацию на уровне Python вместо уровня C, но это работает, и для случайного использования это решит.