Вы можете сделать это, используя numpy
:
import numpy as np
a = np.array(
[[ 5, 1, 10, 11, 6],
[ 5, 3, 8, 10, 9],
[ 2, 1, 10, 8, 7],
[ 7, 10, 7, 8, 11],
[10, 10, 3, 0, 11]])
b = np.array(
[[508, 220, 316, 557, 737],
[625, 419, 161, 736, 426],
[389, 608, 760, 885, 232],
[396, 309, 522, 204, 842],
[403, 831, 225, 549, 797]])
values = np.unique(a)
# will be [ 0 1 2 3 5 6 7 8 9 10 11]
out = {}
for value in values:
out[value] = sum(b[np.where(a==value)])
print(out)
# {0: 549, 1: 828, 2: 389, 3: 644, 5: 1133, 6: 737, 7: 1150, 8: 1250, 9: 426, 10: 3355, 11: 2196}
Или с полным толкованием, все в одной строке:
out = {value: sum(b[np.where(a==value)]) for value in np.unique(a)}