深入解析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/zh-tw/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

發表回復

登錄後才能評論