一、numpy.random.normal函数
numpy.random.normal是numpy的随机抽样函数之一,用来生成符合正态分布的随机数。其函数原型如下:
numpy.random.normal(loc=0.0, scale=1.0, size=None)
其中,loc表示分布的均值,scale表示分布的标准差,size表示生成的随机数的形状。
下面我们来看一下如何使用该函数生成随机数。
import numpy as np #生成一个形状为(3,4)的矩阵,均值为0,标准差为1的随机数 x = np.random.normal(0,1,(3,4)) print(x)
输出结果如下:
array([[-0.95266681, 0.40985143, -0.06706892, 1.55458521], [-0.68607825, 0.3017523 , -0.26802721, 0.32318363], [ 0.80570355, -1.09996266, -2.60677328, 0.22833181]])
二、numpy.random.normal()
除了函数以外,numpy还提供了一种更加简单的方法生成符合正态分布的随机数——numpy.random.normal()。该函数可以直接作用于生成的矩阵,我们仍以前面的例子为例。
import numpy as np #生成一个形状为(3,4)的矩阵,均值为0,标准差为1的随机数 x = np.random.normal(size=(3,4)) print(x)
输出结果如下:
array([[ 0.21269568, 0.15002288, 1.40993888, 1.33271572], [ 0.96861535, 0.30290143, -0.36537699, -0.28479163], [-1.07651303, -1.32463878, -1.2718044 , 0.2071916 ]])
三、numpy.random.normal是什么意思
我们可以使用numpy.random.normal生成符合正态分布的随机数,那么正态分布是什么呢?
正态分布,又叫高斯分布,是一种常见的概率分布,也是一种偏态分布。正态分布可以用一个函数表示,其概率密度函数如下:
其中μ和σ分别表示分布的均值和标准差。μ表示分布的中心位置,σ表示分布的波动大小(也称分布的散布程度)。在正态分布中,大约有68%的数据在距离μ一个σ以内的区间中,大约有95%的数据在距离μ两个σ以内的区间中,大约有99.7%的数据在距离μ三个σ以内的区间中。
四、numpy.random.normal的应用
numpy.random.normal在实际应用中有着广泛的用途。下面我们通过一个例子来说明。
假设我们要通过随机数模拟一个随着时间推移,农场中每只母牛产出的牛奶量的变化。牛奶的产量符合正态分布,其均值为50升,标准差为10升。我们可以通过如下代码生成符合该分布的随机数。
import numpy as np import matplotlib.pyplot as plt #参数设置 mu, sigma = 50, 10 num_samples = 1000 #生成符合正态分布的随机数 cow_milk = np.random.normal(mu, sigma, num_samples) #绘图 plt.hist(cow_milk, bins=50, density=True, alpha=0.6, color='g') plt.title('Milk Production of Cows') plt.xlabel('Milk Production (liters/day)') plt.ylabel('Probability Density') plt.grid(True) plt.show()
运行上述程序,我们可以得到如下的概率密度图:
我们可以看到,该图符合我们对该分布的预期。大多数牛每天都会产出约50升的牛奶,而在产量偏高或偏低的牛的数据分布上,呈现出很自然的左右倾斜的特点。
五、总结
通过对numpy.random.normal的分析,我们可以了解到该函数的功能和使用方法。numpy.random.normal函数是numpy的随机抽样函数之一,用来生成符合正态分布的随机数。numpy.random.normal还可以直接作用于生成的矩阵,生成符合正态分布的随机数。在实际应用中,numpy.random.normal可以用来模拟很多实际的随机现象,并且可以方便地绘制概率分布图。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/191090.html