@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
, используя эту маску.