Создать массив с предварительно определенным средним и стандартным отклонением - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать массив с заданным средним и стандартным значением отклонения, используя Numpy. Массив нуждается в случайных числах внутри него.

Пока что я могу создать массив и вычислить среднее и стандартное значение. но не могу получить массив для управления значениями:

import numpy as np
x = np.random.randn(1000)
print("Average:")
mean = x.mean()
print(mean)
print("Standard deviation:")
std = x.std()
print(std)

Как управлять значениями массива через среднее и стандартное?

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Использование numpy.random.normal. Если ваше среднее значение равно my_mean, а ваш стандартный my_str:

x = np.random.normal(loc=my_mean, scale=my_std, size=1000)
0 голосов
/ 04 мая 2018

Другое решение с использованием 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])
0 голосов
/ 04 мая 2018

Поскольку вы уже знаете среднее и стандартное отклонение, у вас есть две степени свободы. Это означает, что вы можете выбрать случайные числа для всех элементов массива, кроме двух. Последние два должны быть рассчитаны путем решения системы уравнений, заданной формулами для среднего и стандартного значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...