Другое решение с использованием np.random.randn
:
my_std * np.random.randn(1000) + my_mean
Пример:
my_std = 0.025
my_mean = 0.025
x = my_std * np.random.randn(1000) + my_mean
x.mean()
# 0.025493112966038879
x.std()
# 0.024464870590114995
С тем же случайным начальным числом это на самом деле дает те же результаты, что и numpy.random.normal
:
np.random.seed(42)
my_std * np.random.randn(5) + my_mean
# array([ 0.03741785, 0.02154339, 0.04119221, 0.06307575, 0.01914617])
np.random.seed(42)
np.random.normal(loc=my_mean, scale=my_std, size=10)
# array([ 0.03741785, 0.02154339, 0.04119221, 0.06307575, 0.01914617])