Ответ 1
>>> import scipy.stats as st
>>> st.norm.ppf(.95)
1.6448536269514722
>>> st.norm.cdf(1.64)
0.94949741652589625
Как отмечали другие пользователи, Python по умолчанию вычисляет вероятности левого/нижнего хвоста. Если вы хотите определить точки плотности, в которых включено 95% распределения, вы должны принять другой подход:
>>>st.norm.ppf(.975)
1.959963984540054
>>>st.norm.ppf(.025)
-1.960063984540054