Generator.rayleigh – レイリー分布から乱数配列を作成する方法

Generator.rayleighは、レイリー分布から乱数配列を生成するジェネレータメソッドです。

たとえば東向きの風速と北向きの風速が、同一の平均値0のガウス分布である時、風速はレイリー分布に従うと考えられます。ワイブル分布は、レイリー分布の汎化です。

このページではレイリー分布から乱数配列を生成するGenerator.rayleighについて解説します。

目次

1. 書式

Generator.rayleigh

書き方:

Generator.rayleigh(scale=1.0, size=None)

パラメーター:

scale: float or array_like of floats
スケールであり最頻値。デフォルト値は1。
size: int or tuple of ints, optional
出力する配列のshape。(m, n, k)を渡すと、shape(m, n, k)の乱数配列を生成する。デフォルト値Noneで、scaleがスカラーの場合は1つの乱数の値を返す。それ以外の場合はnp.array(scale).sizeの乱数配列を返す。

戻り値: 

out: ndarray or scalar
パラメータを設定したレイリー分布から乱数配列を生成。

Notes

レイリー分布の確率密度関数は次の通りです。

2. サンプルコード

それでは、サンプルコードを見ていきましょう。

まずは、random.default_rng コンストラクタでジェネレータオブジェクトを作成します。『numpy.random.default_rng – 乱数生成のためのジェネレータオブジェクトの作成』に目を通しておいてください。

In [1]:
import numpy as np
rng = np.random.default_rng()
rng
Out[1]:
Generator(PCG64) at 0x7FA1C4B58D68

こうして作成したジェネレータオブジェクト rng に対して、Generator.rayleighを呼び出すことによって、レイリー分布から乱数配列を取得することができます。

第一引数に最頻値であるscaleを、第二引数に出力する配列のshapeを渡します。

In [2]:
rng.rayleigh(3, 5)
Out[2]:
array([4.2601774 , 1.48823141, 2.23914601, 0.80358517, 3.25596156])

以下のヒストグラムは、レイリー分布をプロットしたものです。

In [3]:
from matplotlib.pyplot import hist
values = hist(rng.rayleigh(3, 100000), bins=200, density=True)

波の高さはレイリー分布に従う傾向があります。もし、平均の波高が1mであるなら、3m以上の波が発生する確率はどれぐらいあるでしょうか。以下のコードで確認することができます。

In [4]:
meanvalue = 1
modevalue = np.sqrt(2 / np.pi) * meanvalue
s = rng.rayleigh(modevalue, 1000000)
100.*sum(s>3)/1000000.
Out[4]:
0.0917

約9.2%ほどですね。

3.まとめ

以上のように、Generator.rayleighは、レイリー分布から乱数配列を生成するジェネレータメソッドです。

以前は、numpy.random.rayleigh関数が使われていましたが、ジェネレータメソッドを使うようにしましょう。こちらの方が、処理が高速で、大量のデータを扱う科学技術計算に適しているからです。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる