from collections import defaultdict
a = ([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2])
b = ([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 4.3, 0.1, 0.2, 0.3, 0.4, 0.6] )
group_dict = defaultdict( list )
# group every y by x
for x, y in zip(a, b):
group_dict[x].append( y )
# calculate average value of each group
group_average = [ sum(group_dict[x])/len(group_dict[x]) for x in group_dict ]
# group id
print( list( group_dict.keys() ) )
# group average
print( group_average )
CmZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CgphID0gKFswLCAwLCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAxLCAyLCAyLCAyLCAyLCAyXSkKICAKYiA9IChbMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgNC4zLCAwLjEsIDAuMiwgMC4zLCAwLjQsIDAuNl0gKQoKZ3JvdXBfZGljdCA9IGRlZmF1bHRkaWN0KCBsaXN0ICkKCgojIGdyb3VwIGV2ZXJ5IHkgYnkgeApmb3IgeCwgeSBpbiB6aXAoYSwgYik6CiAgICAKICAgIGdyb3VwX2RpY3RbeF0uYXBwZW5kKCB5ICkKCgojIGNhbGN1bGF0ZSBhdmVyYWdlIHZhbHVlIG9mIGVhY2ggZ3JvdXAKZ3JvdXBfYXZlcmFnZSA9IFsgc3VtKGdyb3VwX2RpY3RbeF0pL2xlbihncm91cF9kaWN0W3hdKSBmb3IgeCBpbiBncm91cF9kaWN0IF0KICAgIAojIGdyb3VwIGlkICAgIApwcmludCggbGlzdCggZ3JvdXBfZGljdC5rZXlzKCkgKSApCgojIGdyb3VwIGF2ZXJhZ2UKcHJpbnQoIGdyb3VwX2F2ZXJhZ2UgKQo=