使用 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]]

结论

能够自定义正态分布的均值和标准差,使其能够应用于广泛的用例,例如统计模拟、数据分析、涉及随机抽样的蒙特卡罗模拟以估计和分析复杂系统以及金融建模。

在金融和投资分析中,正态分布通常用于模拟资产收益。它还能够模拟不同的投资情景和风险评估。

更新于: 2023年8月10日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告