亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python隨機模塊random的22種函數(小結)

瀏覽:72日期:2022-07-25 14:52:07

前言

  隨機數可以用于數學,游戲,安全等領域中,還經常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。平時數據分析各種分布的數據構造也會用到。

  random模塊,用于生成偽隨機數,之所以稱之為偽隨機數,是因為真正意義上的隨機數(或者隨機事件)在某次產生過程中是按照實驗過程中表現的分布概率隨機產生的,其結果是不可預測的,是不可見的。而計算機中的隨機函數是按照一定算法模擬產生的,對于正常隨機而言,會出現某個事情出現多次的情況。

  但是偽隨機在事情觸發前設定好,就是這個十個事件各發生一次,只不過順序不同而已。現在MP3的隨機列表就是用的偽隨機,把要播放的歌曲打亂順序,生成一個隨機列表而已,每個歌曲都播放一次。真實隨機的話,會有出現某首歌多放次的情況,歌曲基數越多,重放的概率越大。

注意:random()是不能直接訪問的,需要導入 random 模塊,然后通過 random 靜態對象調用該方法。

import randomlist(dir(random))[’BPF’, ’LOG4’,’NV_MAGICCONST’,’RECIP_BPF’,’Random’,’SG_MAGICCONST’,’SystemRandom’,’TWOPI’,’betavariate’,’choice’,’choices’,’expovariate’,’gammavariate’,’gauss’,’getrandbits’,’getstate’,’lognormvariate’,’normalvariate’,’paretovariate’,’randint’,’random’,’randrange’,’sample’,’seed’,’setstate’,’shuffle’,’triangular’,’uniform’,’vonmisesvariate’,’weibullvariate’]#加載所需要的包import randomimport matplotlib.pyplot as pltimport seaborn as sns

random.random()

描述:random.random() 用于生成一個0到1的隨機符點數: 0 <= n < 1.0語法:random.random()

#生成一個隨機數random.random()0.7186311708109537#生成一個4位小數的隨機列表[round(random.random(),4) for i in range(10)][0.1693, 0.4698, 0.5849, 0.6859, 0.2818, 0.216, 0.1976, 0.3171, 0.2522, 0.8012]#生成一串隨機數for i in range(10):print(random.random())0.43860556392473480.43944378539770780.2318629636828330.64831689635533420.121065812558118550.70438749865313550.387295196584986230.64922561571703930.4634250509335640.2298431522075462

random.choice()

描述:從非空序列seq中隨機選取一個元素。如果seq為空則彈出 IndexError異常。語法:random.choice( seq)seq 可以是一個列表,元組或字符串。

L = [0,1,2,3,4,5]random.choice(L)2L = ’wofeichangshuai’random.choice(L)’h’

random.choices()

描述:從集群中隨機選取k次數據,返回一個列表,可以設置權重。注意每次選取都不會影響原序列,每一次選取都是基于原序列。也就是有放回抽樣語法:random.choices(population,weights=None,*,cum_weights=None,k=1)參數:

population:集群。 weights:相對權重。 cum_weights:累加權重。 k:選取次數。

a = [1,2,3,4,5]random.choices(a,k=5)[2, 5, 2, 1, 3]random.choices(a,weights=[0,0,1,0,0],k=5)[3, 3, 3, 3, 3]random.choices(a,weights=[1,1,1,1,1],k=5)[3, 1, 5, 2, 2]#多次運行,5被抽到的概率為0.5,比其他的都大random.choices(a,weights=[0.1,0.1,0.2,0.3,0.5],k=5)[5, 4, 4, 4, 2]random.choices(a,weights=[0.1,0.1,0.2,0.3,0.5],k=5)[5, 4, 5, 5, 2]random.choices(a,weights=[0.1,0.1,0.2,0.3,0.5],k=5)[5, 2, 2, 5, 5]random.choices(a,cum_weights=[1,1,1,1,1],k=5)[1, 1, 1, 1, 1]

對每一條語句不妨各自寫一個循環語句讓它輸出個十遍八遍的,你就足以看出用法了。

結論:參數weights設置相對權重,它的值是一個列表,設置之后,每一個成員被抽取到的概率就被確定了。比如weights=[1,2,3,4,5],那么第一個成員的概率就是P=1/(1+2+3+4+5)=1/15。cum_weights設置累加權重,Python會自動把相對權重轉換為累加權重,即如果你直接給出累加權重,那么就不需要給出相對權重,且Python省略了一步執行。比如weights=[1,2,3,4],那么cum_weights=[1,3,6,10],這也就不難理解為什么cum_weights=[1,1,1,1,1]輸出全是第一

random.getrandbits()

描述:返回一個不大于K位的Python整數(十進制),比如k=10,則結果在0~2^10之間的整數。語法:random.getrandbits(k)

random.getrandbits(10)379

random.getstate()

描述:返回一個捕獲到的 生成器當前內部狀態 的對象,可以將此對象傳遞給 setstate() 以恢復到這個狀態。語法:random.getstate()

random.setstate()

描述:state 應該是從之前調用 getstate() 獲得的,而 setstate() 將生成器的內部狀態恢復到調用 getstate() 時的狀態。根據下面的例子可以看出,由于生成器內部狀態相同時會生成相同的下一個隨機數,我們可以使用 getstate() 和 setstate() 對生成器內部狀態進行獲取和重置到某一狀態下。語法:random.setstate(state)

state = random.getstate()random.random()0.489148634943random.random()0.22359638172661822random.setstate(state)random.random()0.48914863494

random.randint()

描述:用于生成一個指定范圍內的整數。語法:random.randint(a, b),其中參數a是下限,參數b是上限,生成的隨機數n: a <= n <= b

random.randint(1, 8)3random.randint(1, 8)4

random.randrange()

描述:按指定基數遞增的集合中 獲取一個隨機數。如:random.randrange(10, 100, 2),結果相當于從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數,random.randrange(10, 100, 2)在結果上與 random.choice(range(10, 100, 2) 等效。語法:random.randrange([start], stop[, step])

不指定step,隨機生成[a,b)范圍內一個整數。 指定step,step作為步長會進一步限制[a,b)的范圍,比如randrange(0,11,2)意即生成[0,11)范圍內的隨機偶數。 不指定a,則默認從0開始。

#不限制[random.randrange(0,11) for i in range(5)][4, 6, 3, 9, 5]#隨機偶數,運行5個數[random.randrange(0,11,2) for i in range(5)][2, 4, 8, 8, 6]

random.sample()

描述:從population樣本或集合中隨機抽取K個不重復的元素形成新的序列。常用于不重復的隨機抽樣。返回的是一個新的序列,不會破壞原有序列。要從一個整數區間隨機抽取一定數量的整數,請使用sample(range(1000000), k=60)類似的方法,這非常有效和節省空間。如果k大于population的長度,則彈出ValueError異常。語法:random.sample(population, k)注意:與random.choices()的區別:一個是選取k次,一個是選取k個,選取k次的相當于選取后又放回,選取k個則選取后不放回。故random.sample()的k值不能超出集群的元素個數。

random.sample(range(1000), k=5)[82, 678, 664, 177, 376]L = [0,1,2,3,4,5]random.sample(L,3)[5, 3, 1]random.sample(L,3)[2, 4, 5]

random.seed()

描述:初始化偽隨機數生成器。如果未提供a或者a=None,則使用系統時間為種子。如果a是一個整數,則作為種子。偽隨機數生成模塊。如果不提供 seed,默認使用系統時間。使用相同的 seed,可以獲得完全相同的隨機數序列,常用于算法改進測試。語法:random.seed(a=None, version=2)

# 生成一個隨機數迭代器實例,與下列的實例不共享隨機狀態a = random.Random()[a.randint(1, 100) for i in range(20)][97, 91, 63, 88, 82, 6, 80, 59, 40, 96, 64, 6, 68, 49, 65, 50, 58, 5, 31, 60]b = random.Random()[b.randint(1, 100) for i in range(20)][46, 53, 89, 1, 48, 21, 45, 26, 89, 96, 43, 85, 21, 78, 8, 38, 54, 1, 27, 56]############################################################################a = random.Random()# 指定相同的隨機種子,共享隨機狀態a.seed(1)[a.randint(1, 100) for i in range(20)][14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]b =random.Random()# 指定相同的隨機種子,共享隨機狀態b.seed(1)[b.randint(1, 100) for i in range(20)][14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]

random.shuffle()

描述:用于將一個列表中的元素打亂。只能針對可變的序列,對于不可變序列,請使用下面的sample()方法。語法:random.shuffle(x)

L = [0,1,2,3,4,5]random.shuffle(L)L[5, 4, 1, 0, 3, 2]

random.uniform()

描述:產生[a,b]范圍內一個隨機浮點數。uniform()的a,b參數不需要遵循a<=b的規則,即a小b大也可以,此時生成[b,a]范圍內的隨機浮點數。語法:random.uniform(x, y)

random.uniform(10, 11)10.789198208817488

random.triangular()

描述:返回一個low <= N <=high的三角形分布的隨機數。參數mode指明眾數出現位置。語法:random.triangular(low, high, mode)

data = [random.triangular(2,4,3) for i in range(20000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.vonmisesvariate()

描述:卡帕分布語法:vonmisesvariate(mu, kappa)

data = [random.vonmisesvariate(2,2) for i in range(20000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.weibullvariate()

描述:威布爾分布語法:random.weibullvariate(alpha, beta)

data = [random.weibullvariate(1,2) for i in range(20000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.betavariate()

描述: β分布語法:random.betavariate(alpha, beta)

data = [random.betavariate(1,2) for i in range(20000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.expovariate()

描述:指數分布語法:random.expovariate(lambd)

data = [random.expovariate(2) for i in range(50000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.gammavariate()

描述: 伽馬分布語法:random.gammavariate(alpha, beta)

data = [random.gammavariate(2,2) for i in range(50000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.gauss()

描述:高斯分布語法:random.gauss(mu, sigma)

data = [random.gauss(2,2) for i in range(50000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.lognormvariate()

描述:對數正態分布語法:random.lognormvariate(mu, sigma)

data = [random.lognormvariate(4,2) for i in range(50000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.normalvariate()

描述: 正態分布語法:random.normalvariate(mu, sigma)

data = [random.normalvariate(2,4) for i in range(20000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

random.paretovariate()

描述:帕累托分布語法:random.paretovariate(alpha)

data = [random.paretovariate(4) for i in range(50000)]#直方圖plt.hist(data, bins=100, color='#FF0000', alpha=.7)#密度圖sns.kdeplot(data, shade=True,color='#FF0000')

直方圖

python隨機模塊random的22種函數(小結)

密度圖

python隨機模塊random的22種函數(小結)

到此這篇關于python隨機模塊random的22種函數(小結)的文章就介紹到這了,更多相關python隨機模塊random內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日本黄色三级网站 | 亚洲综合色视频 | 欧美末成年videos丨 | 国产精品1024永久免费视频 | 久久成人影视 | 无码中文字幕日韩专区 | 日韩亚洲欧洲在线rrrr片 | 放几个免费的毛片出来看 | 综合国产在线 | 日本a在线观看 | 免费看一级欧美激情毛片 | 欧美在线免费观看视频 | 激情五月色综合色婷婷 | 国产高清乱码无卡女大生 | 国产二级毛片 | 国产肉丝在线 | 永久免费视频v片www | 在线免费观看a级片 | 99九九视频 | 伊人久久丁香色婷婷啪啪 | 91福利国产在线观看一区二区 | 在线成人免费视频 | 国内精品福利视频 | 亚洲精品人成网在线播放影院 | 经典三级一区二区三区视频 | 成年人免费网址 | 毛片毛片毛片毛片毛片毛片 | 天天综合天天影视色香欲俱全 | 91在线精品麻豆欧美在线 | 久久综合丁香激情久久 | 亚洲第一免费网站 | 在线观看国产一区二区三区 | a级毛片观看 | 亚洲一区二区精品推荐 | 国产欧美精品亚洲桃花岛 | 亚洲色图另类图片 | 一级成人a免费视频 | 婷婷综合缴情亚洲狠狠图片 | 国产免费久久精品 | 噜噜噜噜精品视频在线观看 | 色综色天天综合网 |