O desvio padrão é a raiz quadrada da variância. A variância de uma variável aleatória X
é definida como

Um estimador para a variância seria, portanto,

onde
denota a média da amostra. Para selecionados aleatoriamente
, pode-se mostrar que este estimador não converge para a variância real, mas para

Se você selecionar amostras aleatoriamente e estimar a média e a variância da amostra, você terá que usar um estimador corrigido (imparcial)

que irá convergir para
. O termo de correção
também é chamado de correção de Bessel.
Agora, por padrão, o MATLABs std
calcula o estimador imparcial com o termo de correção n-1
. No entanto, NumPy (como @ajcr explicado) calcula o estimador tendencioso sem termo de correção por padrão. O parâmetro ddof
permite definir qualquer termo de correção n-ddof
. Definindo para 1, você obtém o mesmo resultado do MATLAB.
Da mesma forma, o MATLAB permite adicionar um segundo parâmetro w
, que especifica o "esquema de pesagem". O default,, w=0
resulta no termo de correção n-1
(estimador enviesado), enquanto para w=1
, apenas n é usado como termo de correção (estimador enviesado).
std([1 3 4 6],1)
é equivalente ao padrão do NumPynp.std([1,3,4,6])
. Tudo isso é explicado claramente na documentação do Matlab e do NumPy, então eu recomendo fortemente que o OP leia-o no futuro.