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?
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)
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])
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.