I have this random variable $X = \{-1, 0, 1\}$ with uniform repartition $p(X = -1) = p(X = 0) = p(X = 1) = \frac{1}{3}$.
Expected value is $$E[X] = \sum_{i\in\{-1,0,1\}} x_ip_i = 0$$
Then variance should be : $$Var[X] = \sigma_{_X}^2 = \sum_{i\in\{-1,0,1\}}(x_i-E[X])^2p_i = (-1-0)^2\times\frac{1}{3} + (0-0)^2\times\frac{1}{3} + (1-0)^2\times \frac{1}{3} = \frac{2}{3}$$
And the standard deviation : $$\sigma_{_X} = \sqrt{\frac{2}{3}} \simeq 0.82$$
But according to Scilab and my phone, the standard deviation is actually $1$...
So what am I doing wrong ?
It looks correct and I get the same results as your calculation with numpy.
So it is probably the way you calculate it.