web-dev-qa-db-ja.com

事前に決定された平均と標準偏差で配列を作成する

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)

平均と標準を介して配列値を制御するにはどうすればよいですか?

7
EORS

使用する - numpy.random.normal 。あなたの平均がmy_meanとstd my_str

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

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])
6
sacuL

すでに平均と標準偏差がわかっているので、2つの自由度があります。つまり、配列の2つの要素を除くすべての要素に乱数を選択できます。最後の2つは、平均と標準偏差の式で与えられる連立方程式を解いて計算する必要があります。

0
Code-Apprentice