読者の今回は、Pythonで5つのNumPyデータ分布に注目します。
まず始めに、データ分布はデータの分布についての考えを持つことを可能にします。
つまり、データ範囲の用語にあるすべての可能な値のリストを表し、また、分布の中でこれらのデータ値の頻度を表します。
PythonのNumPyモジュールは、ランダムなデータ値に対してランダムに生成されたデータ分布を持つのに役立つrandomクラスを提供しています。
NumPyのデータ分布
以下のNumPyデータ分布を使ってみましょう。
- Zipf 分布
- パレート分布
- レイリー分布
- 指数分布
- choice()関数を用いた乱数分布
1. Zipf 分布
Zipf NumPy のデータ分布は、「x 番目に多い要素は、範囲から最も多い要素の 1/x 倍になる」という zipf の法則に基づくものです。
Python の random.zipf() 関数を使うと、配列に対して Zipf 分布を実装することができます。
構文は以下の通りです。
| random.zipf(a,size) | 
- a: 分布パラメータ
- size: 結果の配列の次元。
例えば、以下の様になります。
| fromnumpy importrandomdata =random.zipf(a=2, size=(2, 4))print(data) | 
結果は以下の通りです。
| [[   22411] [   4111644]] | 
2. パレート分布
20%の要因が結果の80%に寄与し引き起こすというパレートの法則に従う。
pareto()関数は、乱数に対してパレート分布(Pareto Data Distribution)を実装することができる。
以下の構文を見てください。
| random.pareto(a,size) | 
- a: 形状
- size: 結果の配列の大きさ。
例えば、以下の様になります。
| fromnumpy importrandomdata =random.pareto(a=2, size=(2, 4))print(data) | 
出力。
| [[2.338971690.407354750.393520792.68105791] [0.028584580.602435981.171267240.36481641]] | 
3. レイリー分布
レイリー分布は、信号処理における確率密度分布を定義し、理解することができます。
以下の構文を見てください。
| random.rayleigh(scale,size) | 
- スケール。スケール:標準偏差の値で、基本的にデータ分布の平坦さを決定します。
- サイズ。出力配列の次元。
例えば、以下の様になります。
| fromnumpy importrandomdata =random.rayleigh(scale=2, size=(2, 4))print(data) | 
結果を出力すると、以下の様になります。
| [[3.795044312.244710252.32163894.01435725] [3.12479961.086927563.038406152.35757077]] | 
4. 指数分布
指数分布は、次の事象が発生するまでの時間枠を把握することができる。
つまり、確率の点数によって、どのような行動が発生するのかがわかる。
例えば、成功率対失敗率のフレームは、成功/失敗です。
構文は以下の様な感じです。
| random.exponential(scale, size) | 
- スケール。アクションの発生回数の逆数。デフォルト値=1.0
- size: 出力配列のサイズ。
例えば、以下の様になります。
| fromnumpy importrandomdata =random.exponential(scale=2, size=(2, 4))print(data) | 
結果を出力すると、以下の様になります。
| [[0.569484720.082300811.392978675.97532969] [1.512902570.959052624.409977497.25248917]] | 
5. choice()関数による乱数分布
乱数分布は、確率密度値のある特徴に従ったランダムなデータの集合を表します。
randomクラスはchoice()関数を提供し、確率値の集合に基づいて乱数を定義することができます。
確率の範囲は 0 と 1 の間で、0 はその集合の中で発生しない数、1 はその集合の中で必ず発生する数を表します。
構文は以下の様な感じです。
| random.choice(array, p, size) | 
- 配列。ランダムデータ分布が発生する要素。配列の要素数は p のカウントと等しくなければならない。
- p: p: 配列の各要素が確率分布に含まれる確率のスコア.p: 配列の各要素が確率分布に含まれる確率の点数,すべての p の値の和は 1 に等しくなければならない.
- size: 2次元/1次元配列のサイズ.
例えば、以下の様になります。
| fromnumpy importrandomdata =random.choice([1,3,5,7], p=[0.1, 0.3, 0.2, 0.4], size=(2, 2))print(data) | 
出力。
| [[77] [13]] | 
まとめ
ここまでで、このトピックは終了です。
何か疑問があれば、お気軽にコメントください。
Pythonプログラミングに関連するこのような記事のために、私たちと一緒にご期待ください。
