Я хочу улучшить код, в котором я должен суммировать по разным показателям.Это код:
neighbors = [[1,2,4],[2,0],[1,3],[],[0]]
omega = np.random((5,5,3,3))
#Sum over indices 0 (filtered) and 2
suma = np.zeros((5,3))
for j in range(5):
for l in range(3):
suma[j,l] += np.sum(omega[neighbors[j],j,:,l])
Теперь я немного улучшил свой код, используя параметр оси sum:
suma2 = np.zeros((5,3))
for j in range(5):
suma2[j,:] += np.sum(omega[neighbors[j],j,:,:],axis=(0,1))
Я хочу знать, как избежать первого цикла.Я пытался создать массив логических значений:
neighbors_bool = np.full((5,5),False,dtype=bool)
for j in range(5):
neighbors_bool[neighbors[j],j] = True
Но я не знаю, как его сложить.