Numpy mean() vs average(): jaka jest różnica?
Do obliczenia średniej wartości tablicy w Pythonie możesz użyć funkcji np.mean() lub np.average() .
Oto subtelna różnica między tymi dwiema funkcjami:
- np.mean zawsze oblicza średnią arytmetyczną.
- np.average ma opcjonalny parametr wagi , którego można użyć do obliczenia średniej ważonej.
Poniższe przykłady pokazują, jak wykorzystać każdą funkcję w praktyce.
Przykład 1: Użyj np.mean() i np.average() bez wag
Załóżmy, że mamy w Pythonie następującą tabelę zawierającą siedem wartości:
#create array of values
data = [1, 4, 5, 7, 8, 8, 10]
Możemy użyć np.mean() i np.average() do obliczenia średniej wartości tej tablicy:
import numpy as np
#calculate average value of array
n.p. mean (data)
6.142857142857143
#calculate average value of array
n.p. average (data)
6.142857142857143
Obie funkcje zwracają dokładnie tę samą wartość.
W obu funkcjach do obliczenia średniej wykorzystano następujący wzór:
Średnia = (1 + 4 + 5 + 7 + 8 + 8 + 10) / 7 = 6,142857 …
Przykład 2: Użyj np.average() z wagami
Załóżmy jeszcze raz, że mamy w Pythonie następującą tablicę zawierającą siedem wartości:
#create array of values
data = [1, 4, 5, 7, 8, 8, 10]
Do obliczenia średniej ważonej dla tej tablicy możemy użyć np.average() podając listę wartości parametrów wagowych :
import numpy as np
#calculate weighted average of array
n.p. average (data, weights=(.1, .2, .4, .05, .05, .1, .1))
5.45
Średnia ważona okazuje się wynosić 5,45 .
Oto wzór używany przez np.average() do obliczenia tej wartości:
Średnia ważona = 1*.1 + 4*.2 + 5*.4 + 7*.05 + 8*.05 + 8*.1 + 10*.1 = 5.45 .
Zauważ, że do wykonania tego obliczenia nie mogliśmy użyć funkcji np.mean() , ponieważ funkcja ta nie posiada parametru wagi .
Pełne wyjaśnienie funkcji np.mean() i np.average() znajdziesz w dokumentacji NumPy.
Dodatkowe zasoby
Poniższe tutoriale wyjaśniają jak obliczyć inne wartości średnie w Pythonie:
Jak obliczyć średnie kroczące w Pythonie
Jak obliczyć średnią skumulowaną w Pythonie