Home > Software engineering >  Sum of second element in an array
Sum of second element in an array

Time:08-12

List Format: [['CODE','ACCURACY'],['CODE','ACCURACY'],....]

Example List:

list1 = [['L5TPPPD9KZST', 0.9707996249198914], ['L5TPPPD9KZST', 0.9604377150535583], ['L5TPPPD9KZST', 0.9624994397163391], ['L5TPPPD9KZST', 0.955596387386322], ['L5TPPPD9KZST', 0.9619339108467102], ['L5TPPPD9KZST', 0.9616058468818665], ['L5TPPPD9KZST', 0.9630076289176941], ['L5TPPPD9KZST', 0.9631552696228027], ['L5TPPPD9KZST', 0.965229332447052], ['L5TPPPD9KZST', 0.965229332447052], ['L5TPPPD9KZST', 0.9654726982116699], ['L5TPPPD9KZST', 0.964877188205719], ['L5TPPPD9KZST', 0.9704579710960388], ['L5TPPPD9KZST', 0.970452606678009], ['L5TPPPD9KZST', 0.9722679257392883], ['L5TPPPD9KZST', 0.969722330570221], ['L5TPPPD9KZST', 0.9694883823394775], ['L5TPPPD9KZST', 0.9694886803627014], ['L5TPPPD9KZST', 0.9639778137207031], ['L5TPPPD9KZST', 0.9639263153076172], ['L5TPPPD9KZST', 0.9583439230918884], ['L5TPPPD9KZST', 0.9393630623817444], ['L5TPPPD9KZST', 0.9582712054252625], ['L5TPPPD9KZST', 0.9605154395103455], ['L5TPPPD9KZST', 0.961374819278717], ['L5TPPPD9KZST', 0.9609169960021973], ['L5TPPPD9KZST', 0.9613582491874695], ['L5TPPPD9KZST', 0.9693458080291748], ['L5TPPPD9KZST', 0.9687929749488831], ['L5TPPPD9KZST', 0.9689026474952698], ['L5TPPPD9KZST', 0.9687891602516174], ['L5TPPPD9KZST', 0.9687891602516174], ['L5TPPPD9KZST', 0.96875], ['L5TPPPD9KZST', 0.9687290787696838], ['L5TPPPD9KZST', 0.968794047832489], ['L5TPPPD9KZST', 0.9696788787841797], ['L5TPPPD9KZST', 0.9701188206672668], ['L5TPPPD9KZST', 0.97011399269104], ['L5TPPPD9KZST', 0.9701710343360901], ['L5TPPPD9KZST', 0.9710682034492493], ['L5TPPPD9KZST', 0.9711113572120667], ['L5TPPPD9KZST', 0.971106231212616], ['L5TPPPD9KZST', 0.9664766192436218], ['L5TPPPD9KZST', 0.9712474346160889], ['L5TPPPD9KZST', 0.9665161967277527], ['L5TPPPD9KZST', 0.9663145542144775], ['L5TPPPD9KZST',
0.9663145542144775], ['L5TPPPD9KZST', 0.9660029411315918], ['L5TPPPD9KZST', 0.9660454392433167], ['L5TPPPD9KZST', 0.9657848477363586], ['L5TPPPD9KZST', 0.9658169746398926], ['L5TPPPD9KZST', 0.9657814502716064], ['L5TPPPD9KZST', 0.96523118019104], ['L5TPPPD9KZST', 0.9655305743217468], ['L5TPPPD9KZST', 0.9731234908103943], ['L5TPPPD9KZST', 0.9739508032798767], ['L5TPPPD9KZST', 0.9743876457214355], ['L5TPPPD9KZST', 0.9743876457214355], ['L5TPPPD9KZST', 0.9726870656013489], ['L5TPPPD9KZST', 0.9724721908569336], ['L5TPPPD9KZST', 0.9730187058448792], ['L5TPPPD9KZST', 0.9730861186981201], ['L5TPPPD9KZST', 0.9731133580207825], ['L5TPPPD9KZST', 0.9731297492980957], ['L5TPPPD9KZST', 0.9568511843681335], ['L5TPPPD9KZST', 0.9568330645561218], ['L5TPPPD9KZST', 0.9570344090461731], ['L5TPPPD9KZST', 0.9725109934806824], ['L5TPPPD9KZST', 0.9727892875671387], ['L5TPPPD9KZST',
0.9726458191871643], ['L5TPPPD9KZST', 0.9727286696434021], ['L5TPPPD9KZST', 0.9725451469421387], ['L5TPPPD9KZST', 0.9716582298278809], ['L5TPPPD9KZST', 0.9698121547698975], ['L5TPPPD9KZST', 0.96990567445755], ['L5TPPPD9KZST', 0.9672815799713135], ['L5TPPPD9KZST', 0.9675748944282532], ['L5TPPPD9KZST', 0.9671061038970947], ['L5TPPPD9KZST', 0.9657451510429382], ['L5TPPPD9KZST', 0.9660928845405579], ['L5TPPPD9KZST', 0.9660732746124268], ['L5TPPPD9KZST', 0.9660385251045227], ['L5TPPPD9KZST', 0.966016948223114], ['L5TPPPD9KZST', 0.9660078883171082], ['L5TPPPD9KZST', 0.9658970832824707], ['L5TPPPD9KZST', 0.9659187197685242], ['L5TPPPD9KZST', 0.9659130573272705], ['L5TPPPD9KZST', 0.9659150242805481], ['L5TPPPD9KZST', 0.9658761024475098], ['L5TPPPD9KZST', 0.964733362197876], ['L5TPPPD9KZST', 0.9646833539009094], ['L5TPPPD9KZST', 0.9646801352500916], ['L5TPPPD9KZST', 0.9646833539009094], ['L5TPPPD9KZST', 0.9646837115287781], ['L5TPPPD9KZST', 0.9643750190734863], ['L5TPPPD9KZST', 0.9643678069114685], ['L5TPPPD9KZST', 0.9624671339988708], ['L5TPPPD9KZST', 0.9624366164207458], ['L5TPPPD9KZST', 0.9487274289131165], ['L5TPPPO9KZST', 0.9608916640281677], ['L5TPPPD9KZST', 0.9646546840667725], ['L5TPPPD9KZST', 0.970625102519989], ['L5TPPP09KZST', 0.947458028793335], ['L5TPPP09KZST', 0.940028727054596], ['L5TPPP09KZST', 0.940028727054596], ['L5TPPP09KZST', 0.9396738409996033], ['L5TPPPO9KZST', 0.9395968317985535], ['L5TPPPO9KZST', 0.9395968317985535], ['L5TPPPO9KZST', 0.939121425151825], ['L5TPPPO9KZST', 0.940077543258667], ['L5TPPPO9KZST', 0.9393913745880127], ['L5TPPPO9KZST', 0.9392940402030945], ['L5TPPPO9KZST', 0.9404256939888], ['L5TPPPO9KZST', 0.9413366317749023], ['L5TPPPO9KZST', 0.9441054463386536], ['L5TPPPO9KZST', 0.9450051188468933], ['L5TPPPO9KZST', 0.9424901604652405], ['L5TPPPO9KZST', 0.941277801990509], ['L5TPPPO9KZST', 0.9412491321563721], ['L5TPPPO9KZST', 0.9403512477874756], ['L5TPPPO9KZST', 0.9425294399261475], ['L5TPPPO9KZST',
0.9383044242858887], ['L5TPPPO9KZST', 0.9386259913444519], ['L5TPPPO9KZST', 0.9404183030128479], ['L5TPPPO9KZST', 0.9435202479362488], ['L5TPPPO9KZST', 0.9464590549468994], ['L5TPPPO9KZST', 0.9463607668876648]]

Goal:

How can we get the average ACCURACY of one CODE in the most effient way?

Example Goal Output:

['L5TPPPO9KZST','AVERAGE ACCURACY']

This is so far I've archived:

d1 = list(set([item[0] for item in list1]))
print(d1)

for codeSingle in d1:
    print(codeSingle)
    for scores in list1:
        if codeSingle in scores[0]:
            score = scores[1]

CodePudding user response:

Here is one approach which constructs a dictionary of the intended means, using a defaultdict to gather the numbers for each key and then using the statistics module to compute the means:

import collections, statistics

list1 = [['L5TPPPD9KZST', 0.9707996249198914], ['L5TPPPD9KZST', 0.9604377150535583], ['L5TPPPD9KZST', 0.9624994397163391], ['L5TPPPD9KZST', 0.955596387386322], ['L5TPPPD9KZST', 0.9619339108467102], ['L5TPPPD9KZST', 0.9616058468818665], ['L5TPPPD9KZST', 0.9630076289176941], ['L5TPPPD9KZST', 0.9631552696228027], ['L5TPPPD9KZST', 0.965229332447052], ['L5TPPPD9KZST', 0.965229332447052], ['L5TPPPD9KZST', 0.9654726982116699], ['L5TPPPD9KZST', 0.964877188205719], ['L5TPPPD9KZST', 0.9704579710960388], ['L5TPPPD9KZST', 0.970452606678009], ['L5TPPPD9KZST', 0.9722679257392883], ['L5TPPPD9KZST', 0.969722330570221], ['L5TPPPD9KZST', 0.9694883823394775], ['L5TPPPD9KZST', 0.9694886803627014], ['L5TPPPD9KZST', 0.9639778137207031], ['L5TPPPD9KZST', 0.9639263153076172], ['L5TPPPD9KZST', 0.9583439230918884], ['L5TPPPD9KZST', 0.9393630623817444], ['L5TPPPD9KZST', 0.9582712054252625], ['L5TPPPD9KZST', 0.9605154395103455], ['L5TPPPD9KZST', 0.961374819278717], ['L5TPPPD9KZST', 0.9609169960021973], ['L5TPPPD9KZST', 0.9613582491874695], ['L5TPPPD9KZST', 0.9693458080291748], ['L5TPPPD9KZST', 0.9687929749488831], ['L5TPPPD9KZST', 0.9689026474952698], ['L5TPPPD9KZST', 0.9687891602516174], ['L5TPPPD9KZST', 0.9687891602516174], ['L5TPPPD9KZST', 0.96875], ['L5TPPPD9KZST', 0.9687290787696838], ['L5TPPPD9KZST', 0.968794047832489], ['L5TPPPD9KZST', 0.9696788787841797], ['L5TPPPD9KZST', 0.9701188206672668], ['L5TPPPD9KZST', 0.97011399269104], ['L5TPPPD9KZST', 0.9701710343360901], ['L5TPPPD9KZST', 0.9710682034492493], ['L5TPPPD9KZST', 0.9711113572120667], ['L5TPPPD9KZST', 0.971106231212616], ['L5TPPPD9KZST', 0.9664766192436218], ['L5TPPPD9KZST', 0.9712474346160889], ['L5TPPPD9KZST', 0.9665161967277527], ['L5TPPPD9KZST', 0.9663145542144775], ['L5TPPPD9KZST',
0.9663145542144775], ['L5TPPPD9KZST', 0.9660029411315918], ['L5TPPPD9KZST', 0.9660454392433167], ['L5TPPPD9KZST', 0.9657848477363586], ['L5TPPPD9KZST', 0.9658169746398926], ['L5TPPPD9KZST', 0.9657814502716064], ['L5TPPPD9KZST', 0.96523118019104], ['L5TPPPD9KZST', 0.9655305743217468], ['L5TPPPD9KZST', 0.9731234908103943], ['L5TPPPD9KZST', 0.9739508032798767], ['L5TPPPD9KZST', 0.9743876457214355], ['L5TPPPD9KZST', 0.9743876457214355], ['L5TPPPD9KZST', 0.9726870656013489], ['L5TPPPD9KZST', 0.9724721908569336], ['L5TPPPD9KZST', 0.9730187058448792], ['L5TPPPD9KZST', 0.9730861186981201], ['L5TPPPD9KZST', 0.9731133580207825], ['L5TPPPD9KZST', 0.9731297492980957], ['L5TPPPD9KZST', 0.9568511843681335], ['L5TPPPD9KZST', 0.9568330645561218], ['L5TPPPD9KZST', 0.9570344090461731], ['L5TPPPD9KZST', 0.9725109934806824], ['L5TPPPD9KZST', 0.9727892875671387], ['L5TPPPD9KZST',
0.9726458191871643], ['L5TPPPD9KZST', 0.9727286696434021], ['L5TPPPD9KZST', 0.9725451469421387], ['L5TPPPD9KZST', 0.9716582298278809], ['L5TPPPD9KZST', 0.9698121547698975], ['L5TPPPD9KZST', 0.96990567445755], ['L5TPPPD9KZST', 0.9672815799713135], ['L5TPPPD9KZST', 0.9675748944282532], ['L5TPPPD9KZST', 0.9671061038970947], ['L5TPPPD9KZST', 0.9657451510429382], ['L5TPPPD9KZST', 0.9660928845405579], ['L5TPPPD9KZST', 0.9660732746124268], ['L5TPPPD9KZST', 0.9660385251045227], ['L5TPPPD9KZST', 0.966016948223114], ['L5TPPPD9KZST', 0.9660078883171082], ['L5TPPPD9KZST', 0.9658970832824707], ['L5TPPPD9KZST', 0.9659187197685242], ['L5TPPPD9KZST', 0.9659130573272705], ['L5TPPPD9KZST', 0.9659150242805481], ['L5TPPPD9KZST', 0.9658761024475098], ['L5TPPPD9KZST', 0.964733362197876], ['L5TPPPD9KZST', 0.9646833539009094], ['L5TPPPD9KZST', 0.9646801352500916], ['L5TPPPD9KZST', 0.9646833539009094], ['L5TPPPD9KZST', 0.9646837115287781], ['L5TPPPD9KZST', 0.9643750190734863], ['L5TPPPD9KZST', 0.9643678069114685], ['L5TPPPD9KZST', 0.9624671339988708], ['L5TPPPD9KZST', 0.9624366164207458], ['L5TPPPD9KZST', 0.9487274289131165], ['L5TPPPO9KZST', 0.9608916640281677], ['L5TPPPD9KZST', 0.9646546840667725], ['L5TPPPD9KZST', 0.970625102519989], ['L5TPPP09KZST', 0.947458028793335], ['L5TPPP09KZST', 0.940028727054596], ['L5TPPP09KZST', 0.940028727054596], ['L5TPPP09KZST', 0.9396738409996033], ['L5TPPPO9KZST', 0.9395968317985535], ['L5TPPPO9KZST', 0.9395968317985535], ['L5TPPPO9KZST', 0.939121425151825], ['L5TPPPO9KZST', 0.940077543258667], ['L5TPPPO9KZST', 0.9393913745880127], ['L5TPPPO9KZST', 0.9392940402030945], ['L5TPPPO9KZST', 0.9404256939888], ['L5TPPPO9KZST', 0.9413366317749023], ['L5TPPPO9KZST', 0.9441054463386536], ['L5TPPPO9KZST', 0.9450051188468933], ['L5TPPPO9KZST', 0.9424901604652405], ['L5TPPPO9KZST', 0.941277801990509], ['L5TPPPO9KZST', 0.9412491321563721], ['L5TPPPO9KZST', 0.9403512477874756], ['L5TPPPO9KZST', 0.9425294399261475], ['L5TPPPO9KZST',
0.9383044242858887], ['L5TPPPO9KZST', 0.9386259913444519], ['L5TPPPO9KZST', 0.9404183030128479], ['L5TPPPO9KZST', 0.9435202479362488], ['L5TPPPO9KZST', 0.9464590549468994], ['L5TPPPO9KZST', 0.9463607668876648]]

d = collections.defaultdict(list)
for k,v in list1: d[k].append(v)
means = {k:statistics.mean(v) for k,v in d.items()}

CodePudding user response:

Given a code name, the following will first create a new list with all the scores for that code, then calculate the average of those scores.

def average_code_score(code, scores):
    scores_for_code = [x[1] for x in scores if x[0] == code]
    return sum(scores_for_code) / len(scores_for_code)

CodePudding user response:

One option is to sum and keep track of the counts of each key in a dictionary and then calculate the means of each after

d = {}

for key, value in list1:
    try:
        d[key][0]  = value
        d[key][1]  = 1
    except KeyError:
        d[key] = [value, 1]

d = {key: sum_count[0] / sum_count[1] for key, sum_count in d.items()}

print(d)
  • Related