📅  最后修改于: 2023-12-03 15:04:33.732000             🧑  作者: Mango
numpy.random.uniform()
是一个用于生成服从均匀分布的随机数的函数。
numpy.random.uniform(low=0.0, high=1.0, size=None)
该函数可以接受三个参数:
low
(可选):生成的随机数的最小值,默认为0.0。high
(必选):生成的随机数的最大值。size
(可选):指定生成的随机数的维度,默认为None,即只生成一个随机数。以下是一个简单的示例:
import numpy as np
# 生成一个范围在[0, 1)之间的随机数
rand_num = np.random.uniform()
print(rand_num)
# 生成一个范围在[0, 5)之间的 1x3 数组
rand_array = np.random.uniform(low=0, high=5, size=(1, 3))
print(rand_array)
输出:
0.0736660131885517
[[3.9292683 1.43953193 1.46888307]]
当我们想要生成服从其他分布的随机数时,可以先生成平均分布的随机数,再通过一些转换生成指定分布的随机数。
例如,要生成服从正态分布的随机数,可以使用以下代码:
# 生成服从正态分布的随机数
mu, sigma = 0, 0.1 # 均值和标准差
s = np.random.uniform(-1, 1, 100000)
x = np.mean(s)
y = np.sqrt(np.var(s))
z = [(i - x) / y for i in s]
norm_array = [i * sigma + mu for i in z]
print(norm_array)
注意:虽然我们可以使用 np.random.normal()
直接生成服从正态分布的随机数,但也可以使用 np.random.uniform()
结合一些数学技巧来生成需要的随机数,这种方式也可以用于生成其他类型的随机数。
在使用随机数时,为了让程序的可复现性更好,一般需要指定随机数种子。随机数种子是一个可以用于生成随机数的起点,如果两次生成随机数使用的是相同的随机数种子,那么他们就会得到相同的随机数。
以下是一个使用随机种子生成随机数的示例:
import numpy as np
np.random.seed(10) # 生成随机数种子
# 第一次生成
rand_num_1 = np.random.uniform(low=0, high=1)
print(rand_num_1)
# 第二次生成,结果应该和前一次相同
np.random.seed(10)
rand_num_2 = np.random.uniform(low=0, high=1)
print(rand_num_2)
输出:
0.771320643266746
0.771320643266746
numpy.random.uniform()
可以用于生成服从均匀分布的随机数,也可以结合一些数学技巧生成其他分布的随机数。在使用时,一般建议指定随机数种子,以提高程序的可复现性。