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