Dzięki za odpowiedzi. Tak, szukałem średniej ważonej.Python - ważony uśrednianie listy
rate = [14.424, 14.421, 14.417, 14.413, 14.41]
amount = [3058.0, 8826.0, 56705.0, 30657.0, 12984.0]
Chcę średniej ważonej najwyższej listy na podstawie każdego elementu z dolnej listy.
Tak więc, jeśli pierwsza pozycja na dolnej liście jest mała (na przykład 3 058 w porównaniu do całkowitej liczby 112,230), pierwsza pozycja z górnej listy powinna mieć mniejszy wpływ na średnią wartość z góry.
Oto niektóre z tego, co próbowałem. Daje mi odpowiedź, która wygląda dobrze, ale nie jestem pewien, czy podąża za tym, czego szukam.
for g in range(len(rate)):
rate[g] = rate[g] * (amount[g]/sum(amount))
rate = sum(rate)
EDIT: Po porównując inne reakcje z mojego kodu, postanowiłem wykorzystać kod pocztowy, aby zachować możliwie jak najkrótszy.
Czy to znaczy [średni ważony] (http://en.wikipedia.org/wiki/Weighted_arithmetic_mean) –
@Pyson Żaden z tych list wydają się mieć pewną sumę 100 procent, więc nie jestem pewien, o tym. –
Jeśli szukasz średniej ważonej jak wspomniano @Pyson, dobrym pomysłem jest znormalizowanie drugiego wektora i zastosowanie algorytmu w.a – srj