Ich habe etwas Code und verstehe nicht, warum die Anwendung von np.std zwei verschiedene Ergebnisse liefert.Verschiedene Ergebnisse np.std() bei Verwendung in Pandas und Standalone
import numpy as np
import pandas as pd
a = np.array([ 1.5, 6. , 7. , 4.5])
print 'mean value is:', a.mean()
print 'standard deviation is:', np.std(a)
Next Zeilen sollten grundsätzlich das gleiche tun, nur in einem Pandas Datenrahmen
base = datetime.datetime(2000, 1, 1)
arr = np.array([base + datetime.timedelta(days=i) for i in xrange(4)])
index_date = pd.Index(arr, name = 'dates')
data_gas = pd.DataFrame(a, index_date, columns=['value'], dtype=float)
mean_pandas = data_gas.resample('M').mean()
standard_deviation = data_gas.resample('M').apply(np.std)
print mean_pandas
print standard_deviation
Aus der Dokumentation von np.std wir lesen können: "... In der Standardeinstellung ddof
ist gleich Null." (ddof = delta Freiheitsgrade).
np.std(a)
liefert die Standardabweichung wo der Divisor N ist (= Anzahl der Werte), ...resample('M').apply(np.std)
liefert die Standardabweichung wo der Divisor N minus 1 ist. Was verursacht diesen Unterschied?
Können Sie die Werte teilen, die Sie in jedem Fall erhalten? –
np.std (a) ergibt 2.0767 und standard_deviation liefert 2.3979 – paulchen
Also, wenn ich richtig verstehe, ist Ihre Frage "warum' .apply (np.std) 'mit ddof = 1 berechnen, trotz' np.std' selbst verwenden ddof = 0? ". Ist das die richtige Interpretation? –