У меня есть несколько массивов с данными, подобными этим:
a = np.random.rand(3,3)
b = np.random.rand(3,3)
Используя для циклов, я создаю большую матрицу
L = np.zeros((9,9))
for i in range(9):
for j in range(9):
L[i,j] = f(a,b,i,j) # values of L depends on values of a and b
Позже в моей программе я изменю a и b, и яхочу, чтобы мой массив L тоже изменился.Таким образом, логика моей программы выглядит следующим образом (в псевдокоде)
Create a
Create b
while True:
Create L using a and b
Do the stuff
Change a
Change b
В моей программе размер L велик (10 ^ 6 x 10 ^ 6 и больше).Построение этой L-матрицы снова и снова является утомительным и медленным процессом.Вместо того, чтобы делать циклы снова и снова, я хотел бы просто обновить значения матрицы L в соответствии с измененными значениями a и b.Структура L одинакова каждый раз, единственное отличие - это значения ячеек.Примерно так:
a[0,0] = 2
b[0,0] = 2
L[3,5] = 2*a[0,0]*b[0,0]
L[3,5]
# >>> 8
a[0,0] = 3
b[0,0] = 1
# do some magic here
L[3,5]
>>> 6