Python Numpy 随机数生成常用方法
1、生成随机数
1)均匀分布随机数
numpy.random.rand(d0, d1, ..., dn)
:生成在 [0, 1) 区间的均匀分布随机数。d0, d1, ..., dn
:表示生成随机数的维度。
numpy.random.randint(low, high=None, size=None, dtype=int)
:生成指定范围的随机整数。
参数说明:
参数 |
说明 |
low |
指定随机数的最小值。 |
high |
指定随机数的最大值。如果省略,则 high 默认为 low + 1。 |
size |
指定生成随机数的个数。如果省略,则 size 默认为 1。 |
dtype |
指定随机数的数据类型。 |
使用示例:
2)正态分布随机数
numpy.random.randn(d0, d1, ..., dn)
:生成标准正态(均值0,标准差1)分布的随机数。d0, d1, ..., dn
:表示生成随机数的维度。
numpy.random.normal(loc=0.0, scale=1.0, size=None)
:生成正态分布的随机数,可指定均值和标准差。
参数说明:
参数 |
说明 |
loc |
指定均值。 |
scale |
指定标准差。 |
size |
指定生成随机数的个数。 如果省略,则 size 默认为 1。 |
使用示例:
3)二项分布随机数
numpy.random.binomial(n, p, size=None)
:生成二项分布随机数。
参数说明:
参数 |
说明 |
n |
试验次数。 |
p |
每次试验成功的概率。 |
size |
要生成的随机数个数。 |
使用示例:
4)泊松分布随机数
numpy.random.poisson(lam=1.0, size=None)
:生成泊松分布随机数。
参数说明:
参数 |
说明 |
lam |
固定区间内平均发生事件的次数。 |
size |
要生成的随机数个数。 |
使用示例:
5)分布随机数
numpy.random.exponential(scale=1.0, size=None)
:生成指数分布随机数。
参数说明:
参数 |
说明 |
scale |
指数分布的参数。 |
size |
要生成的随机数个数。 |
使用示例:
2、随机抽样和洗牌
可以使用NumPy库可以轻松地进行随机抽样和洗牌。常用函数如下,
1)随机抽样
numpy.random.choice(a, size=None, replace=True, p=None)
:从给定的一维数组或整数范围中随机抽样。
参数说明:
参数 |
说明 |
a |
指定要抽取元素的序列。 |
size |
指定要抽取的元素个数。 如果省略,则 size 默认为 1。 |
replace |
指定是否允许重复抽取。 如果为 True,则允许重复抽取; 如果为 False,则不允许重复抽取。 |
p |
指定每个元素被抽取的概率。 如果省略,则每个元素的概率相同。 |
使用示例:
2)洗牌和排列
numpy.random.shuffle(x)
:对数组 x 进行原地洗牌(改变数组本身的顺序),于将序列 x 中的元素随机打乱。x
:指定要打乱的序列。
numpy.random.permutation(x)
:返回数组 x 的一个随机排列或返回一个随机排列的范围。x
:指定要排列的序列。
使用示例:
3、设置随机数种子
numpy.random.seed(seed=None)
:通过设置随机数种子,可以确保随机数生成器的可重复性。seed
:指定种子。如果省略,则使用系统时间作为种子。
使用示例: