Python 使用NumPy生成五个正态分布的随机数
在统计学和数据分析中,正态分布或高斯分布是一种广泛使用的概率分布。它是一个钟形曲线,用来描述概率,并经常用于模拟实际现象。
我们使用Python的NumPy库中可用的随机模块来生成正态分布的随机数。它还允许用户根据指定的均值和标准差生成正态分布的随机数。
语法
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数
loc (float or array_like) :它是分布的平均值或中心。默认值为0.0,表示产生的钟形曲线的顶点。
scale (float or array_like) :它是分布的标准差。默认值为1.0,控制钟形曲线的宽度。
size (int or tuple of ints) :返回输出的形状,并确定要生成的随机数的数量。
当提供一个整数元组时,函数会生成指定形状的多维数组的随机数。默认值标记为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生成一个二维4行5列的随机数数组,这些随机数来自于正态分布,我们可以自定义平均值和标准差。
步骤
- 导入numpy库,命名为np。
-
设置正态分布的期望值(mean)和标准差(std_dev)。
-
使用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]]
结论
自定义正态分布的均值和标准差的能力允许广泛的用例,如统计模拟、数据分析、蒙特卡洛模拟,涉及随机抽样来估计和分析复杂系统和金融建模。
在金融和投资分析中,正态分布常被用来建模资产回报。它还可以模拟不同的投资情景和风险评估。