使用 NumPy 生成五个正态分布的随机数
在统计学和数据分析的研究中,正态分布或高斯分布是一种广泛使用的概率分布。它是一个钟形曲线,描述了概率,通常用于模拟现实世界中的现象。
我们使用 Python 的 NumPy 库中提供的 random 模块来生成正态分布的随机数。它还允许用户生成具有指定均值和标准差的正态分布的随机数。
语法
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数
loc (浮点数或数组类):它是分布的均值或中心。默认值为 0.0,表示生成的钟形曲线的峰值。
scale (浮点数或数组类):它是分布的标准差。默认值为 1.0,它控制钟形曲线的宽度。
size (整数或整数元组):它返回输出的形状,并确定要生成的随机数的数量。
当提供整数元组时,该函数会生成具有指定形状的多维随机数数组。其默认值为 None。
示例 1
以下示例演示了如何生成具有默认均值和标准差的随机数。
算法
导入 numpy 库。
使用 random.normal 函数,不带显式的均值和标准差参数。
将 size 参数指定为 5,以从正态分布生成五个随机数。
将生成的随机数存储在变量 random_numbers 中。
打印 random_numbers 变量。
import numpy as nmp # To generate five random numbers from the normal distribution random_numbers = nmp.random.normal(size=5) # Print the random numbers print("The Random Generated Numbers Are:", random_numbers)
输出
The Random Generated Numbers Are: [-0.66362634 0.60882755 0.62147686 -0.0246644 0.17017737]
示例 2
以下代码演示了如何使用 NumPy 从正态分布生成十个具有自定义均值和标准差的随机数。
import numpy as np # Setting the custom mean and standard deviation mean = 10 # Mean of the distribution std_dev = 2 # Standard deviation of the distribution # Generate the random numbers random_numbers = np.random.normal(loc=mean, scale=std_dev, size=10) # Print the generated random numbers print("Here Are The 10 Generated Random Numbers:", random_numbers)
输出
Here Are The 10 Generated Random Numbers: [10.81862559 7.28414504 8.61239397 8.98294608 7. 50709111 7.90727366 9.21915208 10.43019622 12.493977 11.57399687]
示例 3
在本例中,我们将使用 NumPy 生成一个 4x5 的二维随机数数组,这些随机数来自正态分布,并具有用户定义的均值和标准差。
算法
将 numpy 库导入为 np。
设置正态分布所需的均值和标准差值。
使用 numpy.random.normal 函数,并将均值和标准差值作为参数提供。
将 size 参数指定为元组 (4, 5),以生成一个 4 行 5 列的二维随机数数组,这些随机数来自正态分布。
将生成的随机数存储在变量 random_numbers 中。
打印 random_numbers 变量。
import numpy as nmpy # Set the mean and standard deviation mean = 0 strd_dev = 1 # Generate a 2D array of random numbers from the normal distribution random_numbers = nmpy.random.normal(loc=mean, scale=strd_dev, size=(4, 5)) # Print the generated random numbers print("The two-dimensional array of random numbers:") print(random_numbers)
输出
The two-dimensional array of random numbers: [[-1.18743672 -1.32939008 0.37248625 0.31413006 -0.83207142] [-1.26353284 0.4993038 -1.02139944 -0.66408169 -0.40570098] [-1.36817096 -0.05267991 -0.33518531 -0.0784531 -0.34882078] [ 1.3996869 0.53987652 -2.59857656 -1.2062663 -1.83573899]]
结论
能够自定义正态分布的均值和标准差,使其能够应用于广泛的用例,例如统计模拟、数据分析、涉及随机抽样的蒙特卡罗模拟以估计和分析复杂系统以及金融建模。
在金融和投资分析中,正态分布通常用于模拟资产收益。它还能够模拟不同的投资情景和风险评估。