1. ホーム
  2. python

python numpy.randomの詳細説明

2022-02-13 21:31:12

ランダムサンプリング( numpy.random )

単純なランダムデータ

<テーブル <カラー

<スパン <スパン <スパン ランド (d0, d1, ... , dn)

ランダム値

>>> np.random.rand(3,2)
array([[ 0.14022471, 0.96360618], #random
       [ 0.37601032, 0.25528411], #random
       [ 0.49313049, 0.94909878]]) #random

<スパン <スパン <スパン ランド (d0, d1, ... , dn)

を持つサンプルを返します。 標準正規分布 .

備考

からのランダムなサンプルの場合 を使用します。

sigma * np.random.randn(...) + mu

>>> np.random.randn()
2.1923875335537315 #random

N(3, 6.25) からのサンプルの 2 x 4 の配列.

>>> 2.5 * np.random.randn(2, 4) + 3
array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677], #random
       [ 0.39924804, 4.68456316, 4.99394529, 4.84057254]]) #random

<スパン <スパン <スパン ランディント (低[, 高], サイズ)

のランダムな整数を返します。 半開き 区間[low, high]になります。

>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0])
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

0から4までのintを含む2×4の配列を生成します。

>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

<スパン <スパン ランダム整数 (低[, 高], サイズ)

閉区間[low, high]に含まれる乱数値を返します。

備考

aとbの間にある等間隔なN個の浮動小数点数からサンプリングするには、次のようにします。

a + (b - a) * (np.random.random_integers(N) - 1) / (N - 1.)

>>> np.random.random_integers(5)
4
>>> type(np.random.random_integers(5))
<type 'int'>
>>> np.random.random_integers(5, size=(3.,2.))
array([[5, 4],
       [3, 3],
       [4, 5]])

0から2.5までの等間隔に並んだ5つの数字の集合から、5つの乱数を選んでください( すなわち という集合から ):

>>> 2.5 * (np.random.random_integers(5, size=(5,)) - 1) / 4.
array([ 0.625, 1.25 , 0.625, 0.625, 2.5 ])

6面サイコロ2個を1000回振って、その結果を合計する。

>>> d1 = np.random.random_integers(1, 6, 1000)
>>> d2 = np.random.random_integers(1, 6, 1000)
>>> dsums = d1 + d2

結果をヒストグラムで表示します。

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(dsums, 11, normed=True)
>>> plt.show()

<スパン <スパン <スパン ランダムサンプル ([サイズ])

Random Floating Point Number in half-open interval [0.0, 1.0](半開放区間内の浮動小数点数)を返します。

サンプルに の出力を乗算します。 ランダムサンプル によって (b-a) を追加し a :

(b - a) * random_sample() + a

>>> np.random.random_sample()
0.47108547995356098
>>> type(np.random.random_sample())
<type 'float'>
>>> np.random.random_sample((5,))
array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428])

5, 0)からの乱数の3×2配列。

>>> 5 * np.random.random_sample((3, 2)) - 5
array([[-3.99149989, -0.52338984],
       [-2.99091858, -0.79479508],
       [-1.23204345, -1.75224494]])

<スパン <スパン <スパン ランダム ([サイズ])

Random Floating Point Number in half-open interval [0.0, 1.0](半開放区間内の浮動小数点数)を返します。

<スパン (公式サイトの例はrandom_sampleと全く同じです)

<スパン <スパン <スパン ランフ ([サイズ])

Random Floating Point Number in half-open interval [0.0, 1.0](半開放区間内の浮動小数点数)を返します。

<スパン <スパン <スパン (公式サイトの例はrandom_sampleと全く同じです)

<スパン <スパン <スパン サンプル ([サイズ])

Random Floating Point Number in half-open interval [0.0, 1.0](半開放区間内の浮動小数点数)を返します。

<スパン <スパン <スパン (公式サイトの例はrandom_sampleと全く同じです)

<スパン <スパン 選択 (a[,サイズ,置換,p])

与えられた一次元配列から無作為なサンプルを生成します。

大きさ3のnp.range(5)から一様な無作為標本を生成します。

>>> np.random.choice(5, 3)
array([0, 3, 4])
>>> #This is equivalent to np.random.randint(0,5,3)

サイズ3のnp.range(5)から非一様なランダムサンプルを生成します。

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0])

サイズ3のnp.range(5)から、置換なしで一様な無作為標本を生成します。

>>> np.random.choice(5, 3, replace=False)
array([3,1,0])
>>> #This is equivalent to np.random.permutation(np.range(5))[:3]

サイズ3のnp.range(5)から、置換なしで非一様な無作為標本を生成します。

>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])

上記のいずれかを、整数だけでなく、任意の配列のようなもので繰り返すことができます。

>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'christopher']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher ', 'piglet'],
      dtype='|S11')

<スパン <スパン <スパン バイト (長さ)

ランダムなバイトを返します。

>>> np.random.bytes(10)
' eh\x85\x022SZ\xbf\xa4' #random

アレンジ

<テーブル <カラー

<スパン <スパン <スパン シャッフル (x)

フィールドはシーケンスを変更し、それ自身のコンテンツを変更する。(シャッフルに似ていて、シーケンスを乱す)

>>> arr = np.range(10)
>>> np.random.shuffle(arr)
>>> arr
[1 7 5 2 9 4 3 6 0 8]

この関数は、多次元配列の最初のインデックスに沿った配列のシャッフルのみを行います。

>>> arr = np.range(9).reshape((3, 3))
>>> np.random.shuffle(arr)
>>> arr
array([[3, 4, 5],
       [6, 7, 8],
       [0, 1, 2]])

<スパン <スパン <スパン 順列 (x)

のランダムな配置を返します。

>>> np.random.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])

>>> np.random.permutation([1, 4, 9, 12, 15])
array([15, 1, 9, 4, 12])

>>> arr = np.range(9).reshape((3, 3))
>>> np.random.permutation(arr)
array([[6, 7, 8],
       [0, 1, 2],
       [3, 4, 5]])

>>> mean = [0,0]
>>> cov = [[1,0],[0,100]] # diagonal covariance, points lie on x or y-axis

>>> import matplotlib.pyplot as plt
>>> x, y = np.random.multivariate_normal(mean, cov, 5000).T
>>> plt.plot(x, y, 'x'); plt.axis('equal'); plt.show()

>>> mu, sigma = 0, 0.1 # mean and standard deviation
>>> s = np.random.normal(mu, sigma, 1000)

<スパン 配信内容

<テーブル <カラー

<スパン <スパン <スパン ベータ (a, b[,サイズ])

のベータ分布サンプル <スパン [0, <スパン 1] 内側です。

<スパン <スパン 二項式 (n, p[, size])

二項分布のサンプルです。

<スパン <スパン <スパン シスクエア (df[,サイズ])

カーディナリティ分布のサンプルです。

<スパン <スパン <スパン ディリクレ (アルファ[, サイズ])

Dirichlet分布のサンプルです。

<スパン <スパン <スパン 指数関数的 ([スケール、サイズ])

指数分布

<スパン <スパン <スパン f (dfnum、dfden[, サイズ])

サンプルのF分布。

<スパン <スパン <スパン ガンマ (シェイプ[, スケール, サイズ])

<スパン ガンマ分布

<スパン <スパン <スパン 幾何学的 (p[,サイズ])

<スパン 幾何学的分布

<スパン <スパン <スパン ガムベル ([loc, scale, size])

ガンベル分布。

<スパン <スパン <スパン ハイパージオメトリック (ngood, nbad, nsample[, size])

超幾何分布のサンプル。

<スパン <スパン <スパン ラプラス ([loc, scale, size])

サンプルラプラシアン分布または二重指数分布

<スパン <スパン <スパン ロジスティック ([loc, scale, size])

ロジスティック分布サンプル

<スパン <スパン <スパン ログノーマル ([平均値, σ, サイズ])

<スパン 対数正規分布

<スパン <スパン <スパン ログシリーズ (p[,サイズ])

対数系列分布。

<スパン <スパン <スパン 多項式 (n、pvals[, size])

<スパン 多項目分布

<スパン <スパン <スパン マルチバリアートノーマル (平均値, cov[, サイズ])

多変量正規分布。

>>> abs(mu - np.mean(s)) < 0.01
True
>>> abs(sigma - np.std(s, ddof=1)) < 0.01
True

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 30, normed=True)
>>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
...                np.exp( - (bins - mu)***2 / (2 * sigma**2) ),
...          linewidth=2, color='r')
>>> plt.show()

<スパン <スパン <スパン 負の二項式 (n, p[, size])

負の二項分布

<スパン <スパン <スパン 非中央集権的な二乗 (df、nonc[, size])

非心円カイ二乗分布

<スパン <スパン <スパン noncentral_f (dfnum、dfden、nonc[, size])

<スパン 非中心 F分布

<スパン <スパン <スパン 通常 ([loc, scale, size])

<スパン 正規(ガウス)分布

備考

ガウス分布の確率密度は次のとおりです。

ここで は平均値で 標準偏差の二乗。 は、分散と呼ばれます。

この関数は平均値でピークを持ち、標準偏差が大きくなるほど広がりが大きくなります(関数が最大値の0.607倍となるのは [R217] ).

分布からサンプルを抽出します。

>>> mu, sigma = 0, 0.1 # mean and standard deviation
>>> s = np.random.normal(mu, sigma, 1000)

平均と分散を確認する。

>>> abs(mu - np.mean(s)) < 0.01
True
>>> abs(sigma - np.std(s, ddof=1)) < 0.01
True

サンプルのヒストグラムを、確率密度関数とともに表示します。

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 30, normed=True)
>>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
...                np.exp( - (bins - mu)***2 / (2 * sigma**2) ),
...          linewidth=2, color='r')
>>> plt.show()

<スパン <スパン <スパン パレート (a[,サイズ])

<スパン パレート分布

<スパン <スパン <スパン ポワソン ([lam, size])

ポアソン分布

<スパン <スパン <スパン パワー (a[,サイズ])

正の指数 a - 1 を持つべき乗分布から [0, 1] の標本を描画します。

<スパン <スパン <スパン レイレイ ([スケール、サイズ])

レイリー 分布図

<スパン <スパン 標準コーシー ([サイズ])

標準的なCorsiの分布

<スパン <スパン <スパン 標準エクスポネンシャル ([サイズ])

標準的な指数分布

<スパン <スパン <スパン 標準ガンマ (形状[, サイズ])

<スパン 標準ガンマ分布

<スパン <スパン <スパン スタンダード_ノーマル ([サイズ])

標準正規分布(mean=0, stdev=1)。

<スパン <スパン <スパン スタンダード_t (df[,サイズ])

標準的なスチューデントのt分布で、自由度はdfです。

<スパン <スパン <スパン トライアングル (左, モード, 右[, サイズ])

三角分布

<スパン <スパン <スパン 均一 ([低, 高, サイズ])

<スパン 一様分布

<スパン <スパン <スパン フォンミーズ (ミュー、カッパ[, サイズ])

フォンミーゼス <スパン 分布

<スパン <スパン <スパン ウォルド (平均値, スケール[, サイズ])

<スパン ウォルド(逆ガウス)分布

<スパン <スパン <スパン ワイブル (a[,サイズ])

<スパン ワイブル <スパン 分布図

<スパン <スパン <スパン ビュッフェ (a[,サイズ])

<スパン Zipf分布

乱数発生装置

<テーブル <カラー

<スパン <スパン RandomState

Mersenne Twister擬似乱数発生器のコンテナです。

<スパン <スパン <スパン 種 ([seed])

ジェネレーターに種をまく。

<スパン <スパン <スパン 取得状態 ()

ジェネレーターの内部状態を表すタプルを返します。

<スパン <スパン <スパン set_state (状態)

タプルからジェネレーターの内部状態を設定する。