def interadd(U, idx):
    grids = np.zeros((U, U))
for i in range(len(idx)):
    grids[idx[i, 0], idx[i, 1]] += 1
return grids

def interadd2(U, idx):
    grids = np.zeros((U, U))
np.add.at(grids, idx.T.tolist(), 1)
return grids

def interadd3(U, idx):
    grids = np.zeros((U, U))
np.add.at(grids, (idx[:, (0)], idx[:, (1)]), 1)
return grids
Векторизовать итеративное добавление в массивы NumPy