Python 生成一组均匀分布的随机数
更新时间:2023-07-15Python 生成一组均匀分布的随机数
在Python中,我们可以通过使用random模块来生成随机数。
import random
将会导入Python 随机数生成模块。这个模块提供了大量的随机数生成函数,包括生成整数、虚数、序列和随机选择等。如果想要生成均匀分布的随机数,可以使用random模块中的uniform()方法。
result = random.uniform(start, end)
其中,start是分布区间的起始点,end是分布区间的终止点,生成一个[a,b]范围内的均匀分布随机数。
四种生成均匀分布随机数的方法
1. 使用random.randint()
random.randint()是返回a和b之间的整数,其中both end points都是合法值。无论a和b是任何整数,它们都是均匀分布。 例如,生成10个1到100之间的随机数:
import random res = [] for i in range(10): res.append(random.randint(1, 100)) print(res)
2. 使用random.random()
random.random()函数生成0~1之间的随机小数,且结果包含0和1本身,所以需要将生成的随机小数变换到所需的区间。例如,生成10个1到100之间的随机数:
import random res = [] for i in range(10): res.append(int(random.random() * 100) + 1) print(res)
3. 使用numpy.random.rand()
numpy.random.rand()函数生成0~1之间均匀分布的随机数。可以使用scale和size参数来控制生成随机数的个数和范围。例如,生成10个1到100之间的随机数:
import numpy as np res = np.random.rand(10) * 99 + 1 print(res.astype(int))
4. 使用numpy.random.uniform()
numpy.random.uniform()函数生成指定区间[a,b]内均匀分布的随机数。可以使用size参数来控制生成随机数的个数和范围。例如,生成10个1到100之间的随机数:
import numpy as np res = np.random.uniform(1,101,10) print(res.astype(int))
总结
通过random模块和numpy模块中函数的学习,可以生成均匀分布的随机数。其中random中函数的使用比较简单,直接使用定义好的random函数可以快速生成均匀分布的随机数;而Numpy中提供的函数相对复杂一些,需要掌握scale、size等参数或者API才能生成所需的均匀分布随机数。总的来说,通过合理使用随机数生成库提供的API,可以更加方便的生成所需的均匀分布的随机数,从而达到优化代码的目的。