スポンサーリンク

【SciPy】一様分布からランダムに値を生成するstats.randint.rvs/stats.uniform.rvs

Python

PythonのSciPyライブラリで一様分布からランダムに値を生成するには、stats.randint.rvs/stats.uniform.rvsを用いる。整数を生成した場合はstats.randint.rvs、連続値を生成したい場合は、stats.uniform.rvsを用いる。

stats.randint.rvs/stats.uniform.rvsの使い方

stats.randint.rvsの使い方

stats.randint.rvsの第一引数lowに生成する整数の最小値を、第二引数のhighに生成する整数の「最大値-1」を指定する。[low, high-1]の範囲から整数が生成される。

from scipy import stats

print(stats.randint.rvs(low=-5, high=5))
# -2

print(stats.randint.rvs(low=10, high=20))
# 17

引数sizeを指定することで、生成する値の数を変えることができる。

print(stats.randint.rvs(low=-5, high=5, size=2))
# [ 4 -5]

print(stats.randint.rvs(low=-5, high=5, size=5))
# [ 0  4 -4 -5  2]

整数が一様分布から生成されているか確認するため、1~10の範囲の値を10000個生成し、確認する。

import seaborn as sns

v = stats.randint.rvs(low=1, high=11, size=10000)
sns.displot(v)

stats.uniform.rvs

stats.uniform.rvsの第一引数locに生成する連続値の最小値を、第二引数のscaleに生成する連続値の範囲「loc+scale」を指定する。[low, loc+scale]の範囲から連続値が生成される。

print(stats.uniform.rvs(loc=0, scale=1))
# 0.6409290782947632

print(stats.uniform.rvs(loc=10, scale=50))
# 55.231159631919645

引数sizeを指定することで、生成する値の数を変えることができる。

print(stats.uniform.rvs(loc=0, scale=1, size=3))
# [0.73455082 0.31483708 0.98581969]

print(stats.uniform.rvs(loc=10, scale=50, size=6))
# [38.14807871 32.45504149 55.58068201 21.27074808 58.91817297 27.91614516]

一様分布から生成されているか確認するため、1~10の範囲の値を10000個生成し、確認する。

v = stats.uniform.rvs(loc=0, scale=1, size=10000)
sns.displot(v)

関連記事、参考記事

コメント