Я уже использовал эту функцию:
np.random.seed(40)
np.random.normal(loc = 0, scale = 1, size = 10)
Однако я предполагаю, что значения должны быть между 1 и -1, верно? Но я получаю значения, которые больше 1 и меньше -1. Как это возможно?
Я получаю этот массив:
array([-0.6075477 , -0.12613641, -0.68460636, 0.92871475, -1.84440103,
-0.46700242, 2.29249034, 0.48881005, 0.71026699, 1.05553444])
Вы можете видеть такие значения, как 2.2924, а также -1.8, который находится за пределами стандартного отклонения
Возможное решение
Я сделал этот код, это нормально?
final_data = []
count = 0
a = 26 # standard deviation
b = 157 # mean
for i in range(2000):
y = a*np.random.normal(0, 1, 1) + b # equation to multiply by the std and add the mean
if y <= upper and y >= lower :
final_data.append(y[0])
count += 1
if count > 608:
break;
Где верхний и нижний - это среднее + стандартное и среднее - стандартное. Сначала я сгенерировал случайно распределенное число, а затем поместил его в уравнение. Если число находится между указанным диапазоном c, то я добавил его в список