数値シミュレーションに必要なランダムモジュール

このモジュールは、さまざまな分散型疑似乱数ジェネレーターを実装します。間隔内で乱数を描画したり、リストから要素を描画したり、分布からサンプルを描画したりできます。
ランダムモジュールに直接アクセスすることはできません。ランダムモジュールをインポートしてから、ランダム静的オブジェクトを介してこのメ​​ソッドを呼び出す必要があります。

import random 

1乱数を生成する

同じシードの下にあるランダムジェネレータシードは、同じ乱数を生成します

random.seed()  

[0、1.0)の範囲内の次のランダムな浮動小数点数を返します。

random.random()

random.int(a、b)は整数、a <= N <= bを生成します。

random.randint(1,4) # 
2 

2順番にランダムに1つ選択します

シーケンス内の整数をランダムに選択しますrange()random.randrange(start、stop、step)

random.randrange(1,5,2)
3

random.choice(population)は、空でないシーケンスの母集団からランダムな要素を返します。seqが空の場合、IndexErrorが発生します。

random.choice([2,5,8]) 
8

random.choices(population、weights = None、*、cum_weights = None、k)。重みに従って全体からKを抽出し、重みシーケンスの長さは母集団の長さと等しくなければなりません。明らかに、重みは与えられておらず、k = 1です。これは
random.choice(population)と同等です。

random.choices(['red', 'black', 'green'], [4, 10, 2], k=6)
['green', 'black', 'red', 'black', 'green', 'black']

random.sample(population、k、*、counts = None)は、母集団のシーケンスまたはセットから選択された一意の要素のkの長さのリストを返します。つまり、繰り返しのないランダムサンプリング(置換なし)を返します。

random.sample(['red', 'black', 'green'], 2) 
['red', 'green']

バージョン3.9以降、countsパラメーターが追加され、数値を指定できるようになりました。random.sample(['red'、 'red'、 'red'、 'black'、 'green']、2)はrandomと同等です。 sample(['red'、 'black'、 'green']、counts = [3,1,1]、2)

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

一般的に使用されるディストリビューションは次のとおりです。

関数 配布
gauss(mu、sigma)/ normalvarite(mu、sigma) 正規分布
ユニフォーム(a、b) 均等に分散
expovariate(lamda) インデックス分布
gammavariate(alpha、beta) ガンマ分布
lognormvariate(mu、sigma) 対数正規分布
ベータ変量(アルファ、ベータ) ベータ分布
weibullvariate(alpha、beta) ワイブル分布
paretovariate(alpha) パレート分布
vonmisesvariate(mu,kappa) フォンミーゼス分布(
random.gauss(1,2)
-0.34372692554557815
random.uniform(1,2)
1.7719936383153665
random.expovariate(1)
0.079384517694696
random.gammavariate(1,3)
3.8134444290373866
random.lognormvariate(1,2)
2.561312589509173
random.betavariate(1,2)
0.03565784800319274
random.weibullvariate(1,2)
1.211306128111137
random.paretovariate(1)
1.709941711311189
random.vonmisesvariate(1,2)
2.377632588889548
data = [random.gammavariate(2,4) for i in range(10000)] # 抽取10000个gamma分布样本
#直方图
import matplotlib.pyplot as plt
plt.hist(data, bins=100,  color="#FF0000", alpha=.7)

ここに画像の説明を挿入

4注文をシャッフルします

random.shuffle(x [、random])シーケンスxをランダムにシャッフルします。

a=[1,3,5,7,9]
random.shuffle(a);print(a) 
[3, 7, 5, 1, 9] #  原地打乱顺序

おすすめ

転載: blog.csdn.net/weixin_43705953/article/details/109025791