Python3 Random模塊代碼詳解
更新時間:2017年12月04日 08:44:54 作者:llenfeng33
這篇文章主要介紹了Python3 Random模塊代碼詳解,具有一定參考價值,需要的朋友可以了解下。
描述
random() 方法返回隨機生成的一個實數(shù),它在[0,1)范圍內(nèi)。
import random help(random) FUNCTIONS betavariate(alpha, beta) method of Random instance # 隨機實例的方法 Beta distribution. # β分布 Conditions on the parameters are alpha > 0 and beta > 0. # 必須傳入大于0的alpha 與beta參數(shù) Returned values range between 0 and 1. # 返回一個0 -1 之間的值,這個值你是隨機的! a = random.betavariate(999999, 99999999999999999) # 第一次執(zhí)行結(jié)果:9.995974671839104e-12 第二次執(zhí)行結(jié)果:1.0006927848540756e-11 貝塔分布(Beta Distribution) 是一個作為伯努利分布和二項式分布的共軛先驗分布的密度函數(shù),在機器學習和數(shù)理統(tǒng)計學中有重要應(yīng)用。 在概率論中,貝塔分布,也稱Β分布,是指一組定義在(0,1) 區(qū)間的連續(xù)概率分布。 choice(seq) method of Random instance Choose a random element from a non-empty sequence. # 隨機從一個不為空的序列中取出一個元素,參數(shù)必須不為空 Python包含 6 種內(nèi)建的序列,包括列表、元組、字符串、Unicode字符串、buffer對象和xrange對象。 choices(population, weights=None, *, cum_weights=None, k=1) method of Random instance # 隨機實例的方法 Return a k sized list of population elements chosen with replacement. # 通過chosen with replacement(就是每次抽取的機會都是相同的或按權(quán)重來的,前面的選擇不會影響后面選擇的概率)的方式獲取一個由k個元素組成的隨機列表 If the relative weights or cumulative weights are not specified, # 如果未指定相對權(quán)重或累積權(quán)重, the selections are made with equal probability. # 則選擇的概率相等。 從population中隨機抽取k個元素(可重復)。兩個參數(shù)不能同時存在。 示例: print(random.choices(['red', 'black', 'green'], [18, 18, 2], k=6) ) # 以18的概率權(quán)重取red,18的概率權(quán)重取black,2的概率權(quán)重取green,共進行6次 trial = lambda: random.choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5 # H的概率是0.6,T的概率是0.4 print(sum(trial() for i in range(10000)) / 10000) trial2 = lambda : 2500 <= sorted(random.choices(range(10000), k=5))[2] < 7500 print(sum(trial2() for i in range(10000)) / 10000 ) from statistics import mean data = 1, 2, 4, 4, 10 means = sorted(mean(random.choices(data, k=5)) for i in range(20)) # mean是求平均 print(f'The sample mean of {mean(data):.1f} has a 90% confidence ' f'interval from {means[1]:.1f} to {means[-2]:.1f}') # 這里的f用法 # 上面程序的三次執(zhí)行結(jié)果分別是: # The sample mean of 4.2 has a 90% confidence interval from 2.4 to 6.6 # The sample mean of 4.2 has a 90% confidence interval from 2.6 to 7.2 # The sample mean of 4.2 has a 90% confidence interval from 2.0 to 7.0 expovariate(lambd) method of Random instance # 隨機實例的方法 Exponential distribution. # 指數(shù)分布 lambd is 1.0 divided by the desired mean. It should be nonzero. (The parameter would be called "lambda", but that is a reserved word in Python.) Returned values range from 0 to positive infinity if lambd is positive, and from negative infinity to 0 if lambd is negative. λ(lambd)是1除以所需數(shù)的,它不能為零。(參數(shù)應(yīng)當被稱為lambda,但那是python保留字) 這個函數(shù)返回一個0到正無窮大的隨機數(shù)(如果 λ 為正),或返回一個負無窮大到0的隨機數(shù),如果(如果 λ 為負) gammavariate(alpha, beta) method of Random instance # 隨機實例的方法 Gamma distribution. Not the gamma function! # 伽瑪分布.不是gamma函數(shù) Conditions on the parameters are alpha > 0 and beta > 0. # 參數(shù)的條件是兩個參數(shù)都要大于0 The probability distribution function is: # 概率分布函數(shù)為: x ** (alpha - 1) * math.exp(-x / beta) pdf(x) = -------------------------------------- math.gamma(alpha) * beta ** alpha gauss(mu, sigma) method of Random instance # 隨機實例的方法 Gaussian distribution. # 高斯分布,又名正態(tài)分布或常態(tài)分布 mu is the mean, and sigma is the standard deviation. This is slightly faster than the normalvariate() function. Not thread-safe without a lock around calls. # mu為期望,sigma為方差,這個函數(shù)比normalvariate()函數(shù)速度要快一點點 # 沒有線程調(diào)用,線程不安全。 # 有兩個必傳參數(shù),mu與sigma, getrandbits(...) method of Random instance # 隨機實例的方法 getrandbits(k) -> x. Generates an int with k random bits. # 以整型形式返回k個隨機位(二進制數(shù))。如果處理的是真正的隨機事務(wù)(比如加密),這個函數(shù)尤為有用。 getstate() method of Random instance # 隨機實例的方法 Return internal state; can be passed to setstate() later. # 返回捕獲當前生成器內(nèi)部狀態(tài)的對象.該對象可以用于函數(shù)setstate()來保存當前的狀態(tài). lognormvariate(mu, sigma) method of Random instance # 隨機實例的方法 Log normal distribution. 對數(shù)正態(tài)分布(logarithmic normal distribution)是指一個隨機變量的對數(shù)服從正態(tài)分布,則該隨機變量服從對數(shù)正態(tài)分布。 對數(shù)正態(tài)分布從短期來看,與正態(tài)分布非常接近。但長期來看,對數(shù)正態(tài)分布向上分布的數(shù)值更多一些。 If you take the natural logarithm of this distribution, you'll get a normal distribution with mean mu and standard deviation sigma. mu can have any value, and sigma must be greater than zero. # 如果你對這個分布的參數(shù)取自然對數(shù),你會得到一個均數(shù)為mu,標準差為sigma的正態(tài)分布。 # mu參數(shù)可是任何值,sigma參數(shù)必須大于0 normalvariate(mu, sigma) method of Random instance # 隨機實例的方法 Normal distribution. # 常態(tài)分布,又名正態(tài)分布和高斯分布 mu is the mean, and sigma is the standard deviation. # mu為期望,sigma為方差 paretovariate(alpha) method of Random instance # 隨機實例的方法 Pareto distribution. alpha is the shape parameter. # 帕累托分布;參數(shù)alpha為形狀參數(shù) # 帕累托分布(Pareto distribution)是以意大利經(jīng)濟學家維弗雷多·帕雷托命名的, 是從大量真實世界的現(xiàn)象中發(fā)現(xiàn)的冪次定律分布, # 這個分布在經(jīng)濟學以外,也被稱為布拉德福分布。帕累托因?qū)σ獯罄?0%的人口擁有80%的財產(chǎn)的觀察而著名,后來被約瑟夫·朱蘭和 # 其他人概括為帕累托法則(80/20法則),后來進一步概括為帕累托分布的概念。 randint(a, b) method of Random instance # 隨機實例的方法 Return random integer in range [a, b], including both end points. # 返回a到b之間的一個隨機整數(shù),可取中a和b # 必須傳入兩個參數(shù),且a, b都必須是整數(shù),可以為負整數(shù),a參數(shù)必須小于等于b參數(shù)。 random(...) method of Random instance # 隨機實例的方法 random() -> x in the interval [0, 1). # 無參數(shù),生成一個0-1之間的隨機數(shù),可以是0,但不會生成1 randrange(start, stop=None, step=1, _int=<class 'int'>) method of Random instance # 隨機實例的方法 Choose a random item from range(start, stop[, step]). # 隨機從一個范圍中選取一個參數(shù) This fixes the problem with randint() which includes the # 這個函數(shù)修復了randint()中能取到范圍右邊的數(shù)字的情況 endpoint; in Python this is usually not what you want. # randint()可以取到右邊范圍數(shù)字的情況通常是很多人不愿意看到的 參數(shù)必須為整數(shù),start要小于stop參數(shù) sample(population, k) method of Random instance # 隨機實例的方法 Chooses k unique random elements from a population sequence or set. # 從一個population序列或集合中取出k個隨機元素 Returns a new list containing elements from the population while # 返還一個包含上述元素的列表,原序列或集合不會改變。 leaving the original population unchanged. The resulting list is in selection order so that all sub-slices will also be valid random # 返還的列表是按挑選的先后順序排列的。這樣的話,所有子切片也將是合法的隨機樣本。 samples. This allows raffle winners (the sample) to be partitioned # 這樣做允許樣本中的被選中的幸運兒能按第一名第二名這樣的順序排列(在返還的列表中) into grand prize and second place winners (the subslices). Members of the population need not be hashable or unique. If the # population序列中的成員不需要是可哈希的或者是不重樣的。 population contains repeats, then each occurrence is a possible # 如果population序列包含重復的成員,那么每次的選取都會是樣本中可能的選擇 selection in the sample. To choose a sample in a range of integers, use range as an argument # 為了在一個整數(shù)范圍內(nèi)選擇一個樣本,請使用范圍值作為一個參數(shù)。 This is especially fast and space efficient for sampling from a # 當從龐大數(shù)據(jù)中取樣時這樣做將會非??焖俨⑶夜?jié)省內(nèi)存 large population: sample(range(10000000), 60) # 示例:sample(range(10000000), 60) seed(a=None, version=2) method of Random instance # 隨機實例的方法 Initialize internal state from hashable object. # 通過可哈希對象初始化內(nèi)部狀態(tài) None or no argument seeds from current time or from an operating # 參數(shù)為None或無參數(shù)的情況下,則seeds根據(jù)當前時間來自己選擇這個值 system specific randomness source if available. # 或從系統(tǒng)特定的隨機性源中取值(如果條件可行) If *a* is an int, all bits are used. # 如果參數(shù)a為整型,所有的bits位都將被使用 For version 2 (the default), all of the bits are used if *a* is a str, # 當version參數(shù)為2(默認參數(shù)),如果參數(shù)a是一個字符串類型,bytes或bytearray,則所有的bits位都將被使用 bytes, or bytearray. For version 1 (provided for reproducing random # 當version參數(shù)為1時(提供從老版本python中重新生成的隨機序列) sequences from older versions of Python), the algorithm for str and # 通過對str,bytes的算法生成一個窄范圍的種子。 bytes generates a narrower range of seeds. setstate(state) method of Random instance # 隨機實例的方法 Restore internal state from object returned by getstate(). # 保存getstate()取得并返回的對象。 shuffle(x, random=None) method of Random instance # 隨機實例的方法 Shuffle list x in place, and return None. # 打亂列表x并返回None x為必傳列表參數(shù) Optional argument random is a 0-argument function returning a # 可選參數(shù)為一個不需參數(shù)的返回0-1之間浮點數(shù)的函數(shù) random float in [0.0, 1.0); if it is the default None, the # 如果可選參數(shù)為默認的None,則它會使用random.random函數(shù)方法 standard random.random will be used. 如果你有一個更好的隨機數(shù)生成器,或者說你有一個適合自己應(yīng)用的隨機數(shù)發(fā)生器,那么你就可以使用它而不是使用系統(tǒng)默認那個。 triangular(low=0.0, high=1.0, mode=None) method of Random instance # 隨機實例的方法 Triangular distribution. # 三角分布(triangular distribution),亦稱辛普森分布或三角形分布 Continuous distribution bounded by given lower and upper limits, # 三角形分布是低限為low、上限為high、眾數(shù)默認為兩者平均數(shù)的連續(xù)概率分布。 and having a given mode value in-between. http://en.wikipedia.org/wiki/Triangular_distribution uniform(a, b) method of Random instance # 隨機實例的方法 Get a random number in the range [a, b) or [a, b] depending on rounding. # 從a與b之間取一個隨機數(shù),一定可以取到a,b能否取到看b的舍入 a b兩個參數(shù)必須有,可為整型可為浮點型,目前本人知道的取到b的方法的用math.ceil 這個方法返回的是一個隨機數(shù) vonmisesvariate(mu, kappa) method of Random instance # 隨機實例的方法 Circular data distribution. # 循環(huán)數(shù)據(jù)分布或馮·米塞斯分布 mu is the mean angle, expressed in radians between 0 and 2*pi, and kappa is the concentration parameter, which must be greater than or equal to zero. If kappa is equal to zero, this distribution reduces to a uniform random angle over the range 0 to 2*pi. # mu 是位置的度量,它的聚會在0-2*pi之間,kappa是集中度的度量,它必須大于或等于0。 # 如果kappa等于0,這個分布是均勻分布,對于κ很小的情形,分布近似均勻分布,其位置度量在0-2*pi之間 weibullvariate(alpha, beta) method of Random instance Weibull distribution. # 韋布爾分布 alpha is the scale parameter and beta is the shape parameter. # λ>0是比例參數(shù)(scale parameter),k>0是形狀參數(shù)(shape parameter) # 在這里alpha是比例參數(shù),beta是形狀參數(shù) 威布爾分布(Weibull distribution),又稱韋伯分布或韋布爾分布,是可靠性分析和壽命檢驗的理論基礎(chǔ)。 威布爾分布:在可靠性工程中被廣泛應(yīng)用,尤其適用于機電類產(chǎn)品的磨損累計失效的分布形式。由于它可以利用概率值很容易地推斷出它的分布參數(shù), 被廣泛應(yīng)用于各種壽命試驗的數(shù)據(jù)處理。
總結(jié)
以上就是本文關(guān)于Python3 Random模塊代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
python用fsolve、leastsq對非線性方程組求解
這篇文章主要為大家詳細介紹了python用fsolve、leastsq對非線性方程組進行求解,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12Django 實現(xiàn) Websocket 廣播、點對點發(fā)送消息的代碼
這篇文章主要介紹了Django 實現(xiàn) Websocket 廣播、點對點發(fā)送消息,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法
這篇文章主要介紹了編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法,用到了Python的urllib和urllib2模塊,需要的朋友可以參考下2016-01-01Python3實戰(zhàn)之爬蟲抓取網(wǎng)易云音樂的熱門評論
這篇文章主要給大家介紹了關(guān)于Python3實戰(zhàn)之爬蟲抓取網(wǎng)易云音樂熱評的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10