Mathematische Grundlage
Für $n$ Daten $x_1$, $x_2$, …, $x_n$ schreibt man den Mittelwert als $\bar{x}$, wobei \[ \bar{x} = \frac{1}{n}\sum_{i = 1}^n x_i \; . \]
Die Varianz $\sigma^2$ wird wie folgt berechnet. \[ \begin{align*} \sigma^2 & = \frac{1}{n} \sum_{i=1}^n \left(x_i - \bar{x} \right)^2 \\ & = \frac{1}{n} \sum_{i=1}^n x_i^2 - \left(\frac{1}{n} \sum_{i=1}^n x_i\right)^2 \\ & = \overline{x^2} - \bar{x}^2 \end{align*} \]
Die Funktion zur Ermittlung des Mittelwerts
Dies wird ungefähr folgendermaßen aussehen:
Beispielprogramm 1
def average(array):
ave = 0 # Vergessen Sie nicht die Initialisierung
for data in array:
ave += data
# Das Folgende kann auch als return ave / len(array)
# zusammengeschrieben werden
ave /= len(array)
return aveBeispielprogramm 2
Sie können auch wie folgt schreiben.
def average(array):
ave = 0
for i in range(len(array)):
ave += array[i]
# Das Folgende kann auch als return ave / len(array)
# zusammengeschrieben werden
ave /= len(array)
return aveAnmerkungen
-
Vergessen Sie nicht, die Variablen zu initialisieren.
-
Sie können die Anzahl der Elemente in einem Array mit
len()ermitteln. -
Die letzten beiden Zeilen können auch zusammen als
return ave / len(array)geschrieben werden. In diesem Fall istavejedoch nicht das, was es wirklich bedeutet. (tatsächlich enthält das endgültigeaveden Mittelwert multipliziert mitn). Es ist also besser, den Variablennamen vonavein z. B.n_avezu ändern (was $n$ mal den Mittelwert bedeutet).
Für das Beispielprogramm 2 sind außerdem folgende Punkte zu beachten:
-
Beachten Sie, dass die Array-Indizes bei 0 beginnen.
-
Achten Sie genau auf die Schleifenbedingung in for-Schleife.
Funktion zur Ermittlung der Varianz
Je nachdem, welche Formel Sie verwenden, variiert dies geringfügig, aber im Allgemeinen sieht es etwa so aus.
def variance(array):
var = 0
ave = average(array)
for data in array:
var += (data - ave) * (data - ave)
var /= len(array)
return varAnmerkungen
-
Der Quadrat kann geschrieben werden als
(arr[i] - ave) ** 2.
Überprüfung der Zahlen
Um den Mittelwert und die Varianz anhand der in der Aufgabe angegebenen Daten darzustellen, kann man zum Beispiel wie folgt schreiben.
data = [71, 80, 89]
print(average(data), variance(data))In diesem Fall sollten die Werte als
80.0 54.0angezeigt werden.