Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用不规则的索引列表numpy对某些索引和轴求和_Python_Numpy_Axis_Indices - Fatal编程技术网

Python 用不规则的索引列表numpy对某些索引和轴求和

Python 用不规则的索引列表numpy对某些索引和轴求和,python,numpy,axis,indices,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]

我想改进一个代码,在这里我必须对不同的索引求和。代码如下:

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到3不等,这一事实很好地表明每个子列表都必须单独处理。有关更多详细信息,请参见最近的问题:
邻居的子列表大小从0到3不等,这一事实很好地表明每个子列表都必须单独处理。有关更多详细信息,请参见最近的问题: