a = np.array([[1, 1, 1, 2, 3, 1, 2, 3], [0.1, 0.2, 0.2, 0.1, 0.3, 0.2, 0.2,
    0.1]])
np.array([list(set(a[0])), [np.average(np.compress(a[0] == i, a[1])) for i in
    set(a[0])]])
среднее всех строк, соответствующих всем уникальным строкам