python中random隨機(jī)函數(shù)詳解
加載相關(guān)庫
import random import seaborn as sns import matplotlib.pyplot as plt # 解決中文不顯示的問題 from pylab import mpl mpl.rcParams['font.sans-serif']=['SimHei'] # 解決正負(fù)號(hào)不顯示問題 plt.rcParams['axes.unicode_minus']=False
一、random基礎(chǔ)
random.random() # 返回隨機(jī)生成的一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。 random.randint(1,10) # 產(chǎn)生 1 到 10 的一個(gè)整數(shù)型隨機(jī)數(shù) random.randrange(1,100,2) # 生成從1到100的間隔為2的隨機(jī)整數(shù) random.uniform(1.1,5.4) # 產(chǎn)生 1.1 到 5.4 之間的隨機(jī)浮點(diǎn)數(shù),區(qū)間可以不是整數(shù) random.choice('tomorrow') # 從序列中隨機(jī)選取一個(gè)元素 random.sample('zyxwvutsrqponmlkjihgfedcba',5) # 多個(gè)字符中生成指定數(shù)量的隨機(jī)字符 # 打亂排序 items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] random.shuffle(items) print(items)
items:[3, 8, 4, 1, 7, 0, 6, 2, 9, 5]
二、實(shí)數(shù)分布
2.1 對(duì)稱分布
random.triangular(low, high, mode)
返回一個(gè)隨機(jī)浮點(diǎn)數(shù) N ,使得 low <= N <= high 并在這些邊界之間使用指定的 mode 。 low 和 high 邊界默認(rèn)為零和一。 mode 參數(shù)默認(rèn)為邊界之間的中點(diǎn),給出對(duì)稱分布。
n = 10000 x = [random.triangular(1, 10, 2) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.2 指數(shù)分布
random.expovariate(lambd)
lambd 是 1.0 除以所需的平均值,它應(yīng)該是非零的。 (該參數(shù)本應(yīng)命名為 “lambda” ,但這是 Python 中的保留字。)如果 lambd 為正,則返回值的范圍為 0 到正無窮大;如果 lambd 為負(fù),則返回值從負(fù)無窮大到 0。
n = 10000 x = [random.expovariate(1) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.3 Beta 分布
random.betavariate(alpha, beta)
參數(shù)的條件是 alpha > 0 和 beta > 0。 返回值的范圍介于 0 和 1 之間。
n = 10000 x = [random.betavariate(1, 1) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.4 Gamma 分布
random.gammavariate(alpha, beta)
( 不是 gamma 函數(shù)! ) 參數(shù)的條件是 alpha > 0 和 beta > 0。
n = 10000 x = [random.gammavariate(10, 10) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.5 高斯分布
random.gauss(mu, sigma)
mu 是平均值,sigma 是標(biāo)準(zhǔn)差。 這比下面定義的 normalvariate() 函數(shù)略快。
n = 10000 x = [random.gauss(10, 1) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.6 對(duì)數(shù)正態(tài)分布
random.lognormvariate(mu, sigma)
如果你采用這個(gè)分布的自然對(duì)數(shù),你將得到一個(gè)正態(tài)分布,平均值為 mu 和標(biāo)準(zhǔn)差為 sigma 。 mu 可以是任何值,sigma 必須大于零。
n = 10000 x = [random.lognormvariate(-100, 1) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.7 正態(tài)分布
random.normalvariate(mu, sigma)
mu 是平均值,sigma 是標(biāo)準(zhǔn)差。
n = 10000 x = [random.normalvariate(100, 10) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.8 馮·米塞斯分布
random.vonmisesvariate(mu, kappa)
mu 是平均角度,以弧度表示,介于0和 2pi 之間,kappa 是濃度參數(shù),必須大于或等于零。 如果 kappa 等于零,則該分布在 0 到 2pi 的范圍內(nèi)減小到均勻的隨機(jī)角度.
n = 10000 x = [random.vonmisesvariate(4, 0) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.9 帕累托分布
random.paretovariate(alpha)
alpha 是形狀參數(shù)。
n = 10000 x = [random.paretovariate(100) for i in range(n)] sns.distplot(x) # 默認(rèn)
2.10 威布爾分布
random.weibullvariate(alpha, beta)
alpha 是比例參數(shù),beta 是形狀參數(shù)。
n = 10000 x = [random.weibullvariate(100,10) for i in range(n)] sns.distplot(x) # 默認(rèn)
總結(jié)
到此這篇關(guān)于python中random隨機(jī)函數(shù)詳解的文章就介紹到這了,更多相關(guān)python random隨機(jī)數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 調(diào)用有道翻譯接口實(shí)現(xiàn)翻譯
這篇文章主要介紹了Python 調(diào)用有道翻譯接口實(shí)現(xiàn)翻譯,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Python用for循環(huán)實(shí)現(xiàn)九九乘法表
本文通過實(shí)例代碼給大家介紹了Python用for循環(huán)實(shí)現(xiàn)九九乘法表的方法,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05Python通過zookeeper實(shí)現(xiàn)分布式服務(wù)代碼解析
這篇文章主要介紹了Python通過zookeeper實(shí)現(xiàn)分布式服務(wù)代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07keras實(shí)現(xiàn)theano和tensorflow訓(xùn)練的模型相互轉(zhuǎn)換
這篇文章主要介紹了keras實(shí)現(xiàn)theano和tensorflow訓(xùn)練的模型相互轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Django數(shù)據(jù)庫(SQlite)基本入門使用教程
django有默認(rèn)自帶的數(shù)據(jù)庫,當(dāng)然也可以用其他的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Django數(shù)據(jù)庫(SQlite)基本入門使用教程的相關(guān)資料,需要的朋友可以參考下2022-07-07Python基于socket實(shí)現(xiàn)TCP客戶端和服務(wù)端
這篇文章主要介紹了Python基于socket實(shí)現(xiàn)的TCP客戶端和服務(wù)端,以及socket實(shí)現(xiàn)的多任務(wù)版TCP服務(wù)端,下面相關(guān)操作需要的小伙伴可以參考一下2022-04-04Pytorch 如何實(shí)現(xiàn)LSTM時(shí)間序列預(yù)測
本文主要基于Pytorch深度學(xué)習(xí)框架,實(shí)現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)模型,用于時(shí)間序列的預(yù)測2021-05-05python實(shí)現(xiàn)ssh及sftp功能(實(shí)例代碼)
這篇文章主要介紹了python實(shí)現(xiàn)ssh及sftp功能 ,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03用Python的Flask框架結(jié)合MySQL寫一個(gè)內(nèi)存監(jiān)控程序
這篇文章主要介紹了用Python的Flask框架結(jié)合MySQL些一個(gè)內(nèi)存監(jiān)控程序的例子,并且能將結(jié)果作簡單的圖形化顯示,需要的朋友可以參考下2015-11-11