Я уже использовал эту функцию:
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;
Где верхний и нижний - среднее + стандартное, а среднее - стандартное. Сначала я сгенерировал случайно распределенное число, а затем подставил его в уравнение. Если число находится в пределах определенного диапазона, я добавляю его в список.
[-1, 1]
en.wikipedia.org/wiki/Normal_distribution - person Thomas Schillaci   schedule 05.03.2020