Python生成正态分布随机数
正态分布(也称为高斯分布)是一种常见的连续概率分布,其在统计学和自然科学中经常被使用。在Python中,我们可以使用NumPy库生成正态分布随机数,以便用于模拟实验、统计分析、机器学习等应用中。
1. 生成单个正态分布随机数
首先,我们可以使用NumPy库中的numpy.random.normal
函数生成一个符合正态分布的随机数。该函数有三个参数:loc
表示正态分布的均值,scale
表示标准差,size
表示生成随机数的个数。
import numpy as np
# 生成一个均值为0,标准差为1的正态分布随机数
random_number = np.random.normal(loc=0, scale=1, size=1)
print(random_number)
运行结果:
[-0.53605558]
2. 生成多个正态分布随机数
除了生成单个正态分布随机数外,我们还可以生成多个符合正态分布的随机数。例如,下面的示例代码生成10个均值为100,标准差为10的正态分布随机数。
import numpy as np
# 生成10个均值为100,标准差为10的正态分布随机数
random_numbers = np.random.normal(loc=100, scale=10, size=10)
print(random_numbers)
运行结果:
[ 95.79942271 104.73948844 93.39835979 89.64069126 110.43013033
91.24104377 120.03709274 113.30398837 104.22244991 94.24000042]
3. 生成二维正态分布随机数
在某些情况下,我们可能需要生成二维正态分布随机数,以用于模拟多维数据的情况。下面的示例代码演示了如何生成一个二维均值为[0, 0],协方差矩阵为[[1, 0.5], [0.5, 1]]的正态分布随机数。
import numpy as np
# 生成二维正态分布随机数
mean = [0, 0]
cov = [[1, 0.5], [0.5, 1]]
random_numbers = np.random.multivariate_normal(mean, cov, 10)
print(random_numbers)
运行结果:
[[ 0.4652399 0.24894435]
[-0.14152725 0.43913347]
[ 0.88509468 0.31584989]
[-0.72814852 0.89123713]
[-0.01096788 -0.34714968]
[-0.63551942 -0.32016859]
[ 0.31319713 0.58279928]
[-0.4035058 0.41251157]
[ 0.3602158 -0.65007944]
[-0.33676784 0.64660621]]
通过以上示例代码,我们可以看到如何在Python中生成符合正态分布的随机数。这对于模拟实验、统计分析和机器学习等领域是非常有用的。