Python 使用NumPy生成五个正态分布的随机数

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

结论

自定义正态分布的均值和标准差的能力允许广泛的用例,如统计模拟、数据分析、蒙特卡洛模拟,涉及随机抽样来估计和分析复杂系统和金融建模。

在金融和投资分析中,正态分布常被用来建模资产回报。它还可以模拟不同的投资情景和风险评估。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程