J'ai un itérateur de chiffres, par exemple un objet fichier:calculer la moyenne et la variance avec une itération
f = open("datafile.dat")
maintenant je veux calculer:
mean = get_mean(f)
sigma = get_sigma(f, mean)
Quelle est la meilleure mise en œuvre? Supposons que le fichier soit grand et que je veuille éviter de le lire deux fois.
Voulez-vous éviter de lire deux fois le fichier ou éviter de répéter deux fois? – truppo
Je ne pense pas que vous nous montrez le code complet. Vous passez un fichier 'get_mean()' où 'fsum()' accepte uniquement les listes de nombres. –
Pourquoi avez-vous besoin de placer une restriction sur la modification de la fonction? Si vous avez réarrangé la formule pour la variance, je pense que vous pouvez obtenir quelque chose comme sqrt (1/(n-1) * (somme (li ** 2 pour li en l) + n * mm * somme (li pour li en l) + n * mm)) où n est len (l). Autrement dit, si mes calculs sont corrects. Ensuite, vous pouvez répéter une fois, en calculant les termes de la somme dans le refactoring ci-dessus et la moyenne en même temps. – chradcliffe