###前提・実現したいこと
下記のような配列があり、amountの上位n人目までの加重平均を取りたいです。
10人目までの加重平均を取りたい場合は例の配列で言うと(5003+4007)/10ということをしたいです。
また、scoreとamountはHTTPリクエストから返ってくる数字を整形したものなのでリクエスト毎に値が違います。
下記の配列は一例ですが、どのような値が返ってきてもn番目までを加重平均の取れるようにしたいです。
###返ってくる値の一例
python
1score = [500, 400, 300, 200, 100, 50, 0]#ここは点数で降順に並ぶ。 2amount = [3, 8, 3, 5, 10, 3, 1]#人数
下記のようにすれば、全体の加重平均は取れるのですが、n人目までの加重平均を取り方が分からず困っています。
n人目というのはamountの上位n人目という意味で、amountの左から上位n人までのことです。
python
1wt_avg = sum([s*a for s,a in zip(score,amount)]) / sum(amount)#234.84848484848484 2
scoreは降順で並んでいて、amountはランダムの数字になります。
初歩的な質問で恐縮ですが、よろしくお願いします。
###補足情報(言語/FW/ツール等のバージョンなど)
python3.5.2
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/16 13:37
2017/11/16 14:29 編集