Python - Pondérée de la moyenne d'une liste
Merci pour vos réponses. Oui, je cherchais le moyen pondéré.
rate = [14.424, 14.421, 14.417, 14.413, 14.41]
amount = [3058.0, 8826.0, 56705.0, 30657.0, 12984.0]
Je veux la moyenne pondérée de la tête de liste en fonction sur chaque élément de la liste du bas.
Donc, si le premier bas-élément de la liste est petite (comme 3,058 par rapport au total des 112,230), le premier haut-élément de la liste doit avoir moins d'effet sur le haut de la liste de la moyenne.
Voici ce que j'ai essayé. Il me donne une réponse qui ressemble à droite, mais je ne suis pas sûr si elle suit ce que je suis à la recherche d'.
for g in range(len(rate)):
rate[g] = rate[g] * (amount[g] / sum(amount))
rate = sum(rate)
EDIT:
Après la comparaison d'autres réponses à mon code, j'ai décidé d'utiliser le code postal de le garder aussi court que possible.
Entendez-vous moyenne pondérée
Aucune de ces listes semblent avoir une somme de 100%, donc je ne suis pas sûr à ce sujet.
Si vous êtes à la recherche d'un moyen pondéré @Pyson mentionné, une bonne idée est de normaliser le second vecteur, et d'appliquer les w.un algorithme
Je savais moyenne pondérée, j'ai juste eu un pet cerveau. Merci
Aucune de ces listes semblent avoir une somme de 100%, donc je ne suis pas sûr à ce sujet.
Si vous êtes à la recherche d'un moyen pondéré @Pyson mentionné, une bonne idée est de normaliser le second vecteur, et d'appliquer les w.un algorithme
Je savais moyenne pondérée, j'ai juste eu un pet cerveau. Merci
OriginalL'auteur GShocked | 2015-03-29
Vous devez vous connecter pour publier un commentaire.
est la même chose que:
qui est le même que:
qui est le même que:
Résultat:
Êtes-vous sûr que vous avez copié correctement?
J'ai essayé de nouveau, il a travaillé ce temps. J'ai copié probablement quelque chose de plus sur la page accidentellement. Je vais utiliser votre surligné en jaune code. Merci!
OriginalL'auteur JuniorCompressor
Vous pouvez utiliser
numpy.average
pour calculer la moyenne pondérée.OriginalL'auteur Akavall
Cela ressemble à une moyenne pondérée.
Ce sorties
3.38
, qui tend de plus en plus vers les valeurs avec le plus de poids.OriginalL'auteur maahl
Nous allons utiliser python
zip
fonctionCette fonction renvoie une liste de tuples, où la i-ème tuple contient le i-ème élément de chaque de l'argument de séquences ou d'iterables. La liste retournée est tronqué dans la longueur de la longueur de la plus courte séquence d'argument. Lorsqu'il y a plusieurs arguments qui sont tous de la même longueur, fermeture éclair() est similaire à la carte() avec l'argument initial de Aucun. Avec une séquence unique argument, elle renvoie une liste de 1-n-uplets. Sans arguments, elle retourne une liste vide.
OriginalL'auteur Łukasz Rogalski