@abel
Для замены значений в двумерном массиве numpy по списку индексов можно воспользоваться индексацией через маску.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import numpy as np
# Создание массива
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Список индексов для замены значений
indexes = [(0, 0), (1, 1), (2, 2)]
# Создание маски
mask = np.zeros_like(arr, dtype=bool)
mask[tuple(zip(*indexes))] = True
# Замена значений
arr[mask] = 0
print(arr)
|
Вывод:
1 2 3 |
[[0 2 3] [4 0 6] [7 8 0]] |
В этом примере создается массив arr. Затем создается список indexes, в котором указаны индексы элементов, которые нужно заменить. Дальше создается маска mask того же размера, что и arr. Значения элементами списка indexes устанавливаются в True в маске mask. Наконец, заменяются значения в массиве arr, используя эту маску.