Предположим, у меня есть массив numpy, и я хочу изменить значения. У меня есть определенный c список (x, y) -координат, которые указывают ячейки, в которые должен быть добавлен дополнительный термин. Код ниже делает эту работу за меня.
>>> import numpy as np
n = 4
M = np.ones([n,n])
x = [0,1,2,3]
y = [1,2,3,0]
xy = list(zip(x,y))
alpha = 0.3
for i in range(n):
for j in range(n):
M[i,j] = alpha*M[i,j] + ((i,j) in xy)*(1-alpha)*3
>>> M
Out[1]:
array([[0.3, 2.4, 0.3, 0.3],
[0.3, 0.3, 2.4, 0.3],
[0.3, 0.3, 0.3, 2.4],
[2.4, 0.3, 0.3, 0.3]])
Тем не менее, я думаю, что есть менее обременительные способы добиться того же. Может ли кто-нибудь помочь мне избавиться, например, от двух циклов for?