Ecco il mio codice:Deviazione standard in NumPy
import numpy as np
print(np.std(np.array([0,1])))
Produce 0.5
Sono fiducioso che questo non è corretto. Che cosa sto facendo di sbagliato?
Ecco il mio codice:Deviazione standard in NumPy
import numpy as np
print(np.std(np.array([0,1])))
Produce 0.5
Sono fiducioso che questo non è corretto. Che cosa sto facendo di sbagliato?
Per impostazione predefinita, numpy.std
restituisce la deviazione standard della popolazione, nel qual caso np.std([0,1])
è stato segnalato correttamente come 0.5
. Se siete alla ricerca per la deviazione standard del campione, è possibile fornire un parametro opzionale ddof
a std()
:
>>> np.std([0, 1], ddof=1)
0.70710678118654757
ddof
modifica il divisore della somma dei quadrati dei campioni-minus-media. Il divisore è N - ddof
, dove il valore predefinito ddof
è 0
come si può vedere dal risultato.
Penso che il default di numpy sia la deviazione standard 'population', che è N e la deviazione standard del campione è N-1. – user1700890
Ammetto che la mia terminologia potrebbe essere al contrario. –
corretto. Grazie per la correzione. –
Questo è corretto. 'std = RMS (data - mean)'. In questo caso: 'std = sqrt ((0.5^2 + 0.5^2)/2) = sqrt (0.25) = 0.5' –
@MadPhysicist, grazie, mi sono appena un po 'confuso con il campione e la popolazione std. Il foglio di calcolo di Google utilizza la deviazione standard campione in stdev. – user1700890
Imposta il parametro 'ddof' su' 1' per ottenere lo std della popolazione: http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html –