深入解析numpy.random.normal

一、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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-30 09:08
下一篇 2024-11-30 09:09

相关推荐

  • 如何使用random生成不重复的随机数

    在编程开发中,我们经常需要使用随机数来模拟一些场景或生成一些数据。但是如果随机数重复,就会造成数据的不准确性。这时我们就需要使用random库来生成不重复且随机的数值。下面将从几个…

    编程 2025-04-29
  • 如何使用Python导入Random库

    Python是一门优秀的编程语言,它拥有丰富的第三方库和模块。其中,Random库可谓是最常用的库之一,它提供了用于生成随机数的功能。对于开发人员而言,使用Random库能够提高开…

    编程 2025-04-29
  • Python矩阵转置函数Numpy

    本文将介绍如何使用Python中的Numpy库实现矩阵转置。 一、Numpy库简介 在介绍矩阵转置之前,我们需要了解一下Numpy库。Numpy是Python语言的计算科学领域的基…

    编程 2025-04-28
  • Python列表转numpy数组

    本文将阐述Python中列表如何转换成numpy数组。在科学计算和数据分析领域中,numpy数组扮演着重要的角色。Python与numpy的无缝结合使得数据操作更加方便和高效。因此…

    编程 2025-04-27
  • Python随机函数random的使用指南

    本文将从多个方面对Python随机函数random做详细阐述,帮助读者更好地了解和使用该函数。 一、生成随机数 random函数生成随机数是其最常见的用法。通过在调用random函…

    编程 2025-04-27
  • Python三大:NumPy、Pandas、matplotlib

    本文将详细介绍三大Python数据处理及可视化库——NumPy、Pandas以及matplotlib,为读者提供从基础使用到应用场景的全面掌握。 一、NumPy NumPy是Pyt…

    编程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在开发过程中引入了新的API `defineExpose`。在以前的版本中,我们经常使用 `$attrs` 和` $listeners` 实现父组件与子组件之间的通信,但…

    编程 2025-04-25
  • 深入理解byte转int

    一、字节与比特 在讨论byte转int之前,我们需要了解字节和比特的概念。字节是计算机存储单位的一种,通常表示8个比特(bit),即1字节=8比特。比特是计算机中最小的数据单位,是…

    编程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什么是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一个内置小部件,它可以监测数据流(Stream)中数据的变…

    编程 2025-04-25
  • 深入探讨OpenCV版本

    OpenCV是一个用于计算机视觉应用程序的开源库。它是由英特尔公司创建的,现已由Willow Garage管理。OpenCV旨在提供一个易于使用的计算机视觉和机器学习基础架构,以实…

    编程 2025-04-25

发表回复

登录后才能评论