用索引列表numpy的不规则列表求和一些索引和轴

时间:2019-02-07 15:52:44

标签: python numpy axis indices

我想改进一个代码,其中必须对不同的索引求和。这是代码:

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的axis参数对代码进行了一些改进:

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

但是我不知道如何将它加到总和中。

0 个答案:

没有答案