web-dev-qa-db-fra.com

Créer un tableau avec une moyenne et un écart-type prédéterminés

J'essaie de créer un tableau avec une moyenne et une valeur d'écart type prédéterminées à l'aide de Numpy. Le tableau doit contenir des nombres aléatoires.

Jusqu'à présent, je peux produire un tableau et calculer la moyenne et la std. mais ne peut pas contrôler le tableau par les valeurs:

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

Comment contrôler les valeurs du tableau via la moyenne et la norme?

7
EORS

Utilisation numpy.random.normal . Si votre moyenne est my_mean et votre std my_str:

x = np.random.normal(loc=my_mean, scale=my_std, size=1000)
8
Jundiaius

Une autre solution, en utilisant np.random.randn :

my_std * np.random.randn(1000) + my_mean

Exemple:

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

Avec la même graine aléatoire, cela produit en fait exactement les mêmes résultats que 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])
6
sacuL

Puisque vous connaissez déjà la moyenne et l'écart type, vous disposez de deux degrés de liberté. Cela signifie que vous pouvez sélectionner des nombres aléatoires pour tous les éléments de votre tableau sauf deux. Les deux derniers doivent être calculés en résolvant le système d'équations donné par les formules pour moyenne et stddev.

0
Code-Apprentice