利用numpy.random.randn()在Python中生成标准正态分布的随机数
发布时间:2023-12-24 09:40:15
numpy.random.randn()是numpy库中的一个函数,用于生成服从标准正态分布的随机数。标准正态分布又称为高斯分布或者正态分布,它的概率密度函数为:
f(x) = (1 / sqrt(2 * pi)) * exp((-x^2) / 2)
这个函数的特点是均值为0,标准差为1,即mean=0, std=1。
下面是一个使用numpy.random.randn()生成标准正态分布随机数的例子:
import numpy as np
# 生成一个长度为1000的标准正态分布随机数数组
random_numbers = np.random.randn(1000)
# 计算该随机数组的均值和标准差
mean = np.mean(random_numbers)
std = np.std(random_numbers)
print("随机数的均值:", mean)
print("随机数的标准差:", std)
在这个例子中,我们通过np.random.randn(1000)生成了一个长度为1000的标准正态分布随机数数组。然后我们分别使用np.mean()和np.std()函数计算了随机数数组的均值和标准差,并将结果打印出来。
运行上述代码,你将会得到类似下面的输出:
随机数的均值: -0.0018603210149235526 随机数的标准差: 1.002042405643119
可以看到,通过numpy.random.randn()生成的随机数数组的均值和标准差非常接近于理论上的均值0和标准差1。
除了生成标准正态分布的随机数,numpy.random.randn()还可以通过乘以一个标准差的值和加上一个均值来生成任意均值和标准差的正态分布随机数。例如,如果我们需要生成均值为10,标准差为2的正态分布随机数,可以使用如下代码:
random_numbers = 2 * np.random.randn(1000) + 10
在这个例子中,我们通过2 * np.random.randn(1000)生成了一个长度为1000的标准正态分布随机数数组,并将每个随机数都乘以2,然后再加上10,从而得到均值为10,标准差为2的正态分布随机数数组。
所以,利用numpy.random.randn()函数可以方便地生成标准正态分布的随机数,并且可以通过乘以一个标准差的值和加上一个均值来生成任意均值和标准差的正态分布随机数。
