Ich möchte den Mittelwert und die Standardabweichung der 1., 2., ... Ziffern mehrerer (Z) Listen ermitteln. Zum Beispiel habe ich
A_rank=[0.8,0.4,1.2,3.7,2.6,5.8]
B_rank=[0.1,2.8,3.7,2.6,5,3.4]
C_Rank=[1.2,3.4,0.5,0.1,2.5,6.1]
# etc (up to Z_rank )...
Jetzt möchte ich den Mittelwert und den Standardwert *_Rank[0]
, den Mittelwert und den Standardwert *_Rank[1]
usw.
(dh den Mittelwert und den Standardwert der 1. Ziffer aus allen (A..Z) -Ranglisten;
den Mittelwert und den Standardwert der 2. Ziffer aus alle (A..Z) -Ranglisten;
Mittelwert und Standard der 3. Ziffer ...; etc).
python
list
standard-deviation
Physik_für_all
quelle
quelle
Antworten:
Seit Python 3.4 / PEP450 gibt es eine
statistics module
in der Standardbibliothek, die eine Methodestdev
zur Berechnung der Standardabweichung von Iterables wie Ihrer enthält:quelle
pstddev
wahrscheinlich stattdessen verwendet werden sollte, wenn Ihre Liste die gesamte Bevölkerung darstellt (dh die Liste ist keine Stichprobe einer Bevölkerung).stddev
wird anhand der Stichprobenvarianz berechnet und überschätzt den Populationsmittelwert.stdev
undpstdev
verwendet wird , nichtstd
für ,standard
wie man erwarten würde. Ich konnte den Beitrag nicht bearbeiten, da Änderungen mindestens 6 Zeichen ändern müssen ...Ich würde
A_Rank
et al. In ein 2D- NumPy- Array einfügen und dann die Mittelwerte und Standardabweichungen verwendennumpy.mean()
undnumpy.std()
berechnen:quelle
STDEV.P()
und die Numpy-Funktionstd(ddof=0)
die Grundgesamtheit sd oder die nicht korrigierte Stichprobe sd, während die Excel-FunktionSTDEV.S()
und die Numpy-Funktionstd(ddof=1)
die (korrigierte) Stichprobe sd berechnen , die sqrt (N / (N-1) entspricht. ) mal die Bevölkerung sd, wobei N die Anzahl der Punkte ist. Weitere InformationenHier ist ein reiner Python-Code, mit dem Sie den Mittelwert und die Standardabweichung berechnen können.
Der gesamte folgende Code basiert auf dem
statistics
Modul in Python 3.4+.Hinweis: Für eine verbesserte Genauigkeit beim Summieren von Floats verwendet das
statistics
Modul eine benutzerdefinierte Funktion_sum
anstelle der integrierten Funktion,sum
die ich an seiner Stelle verwendet habe.Jetzt haben wir zum Beispiel:
quelle
pvar=ss/(n-1)
?n-1
. Der obige Code gilt für die SD-Bevölkerung (es gibt alson
Freiheitsgrade).stddev
Funktion so bearbeitet , dass sie sowohl Stichproben- als auch Populationsstandardabweichungen berechnen kann.In Python 2.7.1 können Sie die Standardabweichung berechnen mit
numpy.std()
:numpy.std()
keine zusätzlichen Argumente außer Ihrer Datenliste.Es berechnet eher den Stichprobenstandard als den Populationsstandard.
quelle
In Python 2.7 können Sie NumPy's verwenden, um
numpy.std()
die Populationsstandardabweichung anzugeben .In Python 3.4 wird
statistics.stdev()
die Standardabweichung des Beispiels zurückgegeben. Diepstdv()
Funktion ist die gleiche wienumpy.std()
.quelle
Bei der Verwendung von Python gibt es einige Methoden:
Ansatz1 - Verwenden einer Funktion
Ansatz2: Varianz berechnen und Quadratwurzel daraus ziehen
Ansatz3: Grundlegende Mathematik verwenden
Hinweis:
variance
berechnet die Varianz der Stichprobenpopulationpvariance
berechnet die Varianz der gesamten Bevölkerungstdev
undpstdev
quelle
reiner Python-Code:
quelle
sqrt(sum((x - mean)**2 for x in lst) / len(lst))
Die anderen Antworten behandeln, wie man std dev in Python ausreichend macht, aber niemand erklärt, wie man die bizarre Durchquerung macht, die Sie beschrieben haben.
Ich gehe davon aus, dass AZ die gesamte Bevölkerung ist. Wenn nicht, lesen Sie Omes Antwort, wie Sie aus einer Stichprobe schließen können.
Um die Standardabweichung / den Mittelwert der ersten Ziffer jeder Liste zu erhalten, benötigen Sie ungefähr Folgendes:
Um den Code zu verkürzen und auf eine n-te Ziffer zu verallgemeinern, verwenden Sie die folgende Funktion, die ich für Sie generiert habe:
Jetzt können Sie einfach den Standard und den Mittelwert aller n-ten Plätze von AZ wie folgt abrufen:
quelle
str([chr(x)+'_rank[n]' for x in range(65,65+26)]).replace("'", "")