<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
首先我們需要匯入random模組
1. random.random(): 返回隨機生成的一個浮點數,範圍在[0,1)之間
import random print(random.random())
2. random.uniform(a, b): 返回隨機生成的一個浮點數,範圍在[a, b)之間
import random print(random.uniform(1,5))
3. random.randint(a,b):生成指定範圍內的整數
import random print(random.randint(1,10))
4. random.randrange([start],stop[,step]):用於從指定範圍內按指定基數遞增的集合中獲取一個亂數。
例如random.randrange(10,100,2),結果相當於從 [10,12,14,16...96,98] 序列中獲取一個亂數。random.randrange (10,100,2) 的結果上與 random.choice(range(10,100,2)) 等效。
import random print(random.randrange(10,22,3))
5. random.choice():從指定的序列中獲取一個隨機元素
random.choice()從序列中獲取一個隨機元素,其原型為random.choice(sequence),引數sequence表示一個有序型別。這裡說明一下,sequence在Python中不是一種特定的型別,而是泛指序列資料結構。列表,元組,字串都屬於sequence。
import random print(random.choice('學習python')) # 從字串中隨機取一個字元 print(random.choice(['good', 'hello', 'is', 'hi', 'boy'])) # 從list列表中隨機取 print(random.choice(('str', 'tuple', 'list'))) # 從tuple元組中隨機取
6. random.shuffle(x[,random]):用於將一個列表中的元素打亂,隨機排序
import random p=['hehe','xixi','heihei','haha','zhizhi','lala','momo..da'] random.shuffle(p) print(p) x = [1, 2, 3, 4, 5] random.shuffle(x) print(x)
7. random.sample(sequence,k):用於從指定序列中隨機獲取指定長度的片段,sample()函數不會修改原有序列。
import random list1=[1,2,3,4,5,6,7,8,9,10] slice=random.sample(list1,5) print(slice) #[8, 3, 5, 9, 10] print(list1) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] x = random.sample(range(0, 10), 5) print(x, type(x)) #[9, 2, 7, 8, 6] <class 'list'> Words = "AppleKMedoide" print(random.sample(Words, 3)) #['p', 'M', 'A'] print(random.sample(Words, 3)) #['d', 'i', 'l']
下面的函數需要呼叫numpy庫
8. np.random.rand(d0, d1, …, dn): 返回一個或一組浮點數,範圍在[0, 1)之間
import random import numpy as np x = np.random.rand() y = np.random.rand(4) print(x,type(x)) #0.09842641570445387 <class 'float'> print(y,type(y)) #[0.27298291 0.12350038 0.63977128 0.90791234] <class 'numpy.ndarray'>
9. np.random.normal(loc=a, scale=b, size=()): 返回滿足條件為均值=a, 標準差=b的正態分佈(高斯分佈)的概率密度亂數
np.random.normal(loc=a, scale=b, size=()) - 返回滿足條件為均值=a, 標準差=b的正態分佈(高斯分佈)的概率密度亂數,size預設為None(返回1個亂數),也可以為int或陣列
import random import numpy as np x = np.random.normal(10,0.2,2) print(x,type(x)) #[9.78391585 9.83981096] <class 'numpy.ndarray'> y = np.random.normal(10,0.2) print(y,type(y)) #9.871187751372984 <class 'float'> z = np.random.normal(0,0.1,(2,3)) print(z,type(z)) #[[-0.07114831 -0.10258022 -0.12686863] # [-0.08988384 -0.00647591 0.06990716]] <class 'numpy.ndarray'> z = np.random.normal(0,0.1,[2,2]) print(z,type(z)) #[[ 0.07178268 -0.00226728] # [ 0.06585013 -0.04385656]] <class 'numpy.ndarray'>
10 np.random.randn(d0, d1, … dn): 返回標準正態分佈(均值=0,標準差=1)的概率密度亂數
np.random.randn(d0, d1, ... dn): 返回標準正態分佈(均值=0,標準差=1)的概率密度亂數,
import random import numpy as np x = np.random.randn() y = np.random.randn(3) z = np.random.randn(3, 3) print(x, type(x)) print(y, type(y)) print(z, type(z))
11. np.random.standard_normal(size=()): 返回標準正態分佈(均值=0,標準差=1)的概率密度亂數
np.random.standard_normal(): 返回標準正態分佈(均值=0,標準差=1)的概率密度亂數, size預設為None(返回1個亂數),也可以為int或陣列
import random import numpy as np x = np.random.standard_normal() y = np.random.standard_normal(size=(3,3)) print(x, type(x)) print(y, type(y))
np.random.rand()與np.random.standard_normal()的方法結果相似,都是返回合符標準正態分佈的隨機浮點數或陣列。
12. np.random.randint(a, b, size=(), dtype=int): 返回在範圍在[a, b)中的隨機整數(含有重複值)
np.random.randint(a, b, sizie=(), dytpe=int) - size預設為None(返回1個亂數),也可以為int或陣列
import random import numpy as np # 從序列[0, 10)之間返回shape=(5,5)的10個隨機整數(包含重複值) x = np.random.randint(0, 10, size=(5, 5)) # 從序列[15, 20)之間返回1個隨機整數(size預設為None, 則返回1個隨機整數) y = np.random.randint(15, 20) print(x, type(x)) print(y, type(y))
13. random.seed(): 設定隨機種子
在設定隨機種子為10之後,random.random()的亂數將被直接設定為:0.5714025946899135
import random random.seed(10) x = random.random() print(x,type(x)) random.seed(10) y = random.random() print(y,type(y)) z = random.random() print(z,type(z))
random亂數是這樣生成的:我們將這套複雜的演演算法(是叫亂數生成器吧)看成一個黑盒,把我們準備好的種子扔進去,它會返給你兩個東西,一個是你想要的亂數,另一個是保證能生成下一個亂數的新的種子,把新的種子放進黑盒,又得到一個新的亂數和一個新的種子,從此在生成亂數的路上越走越遠。
我們利用如下程式碼進行測試:
import numpy as np if __name__ == '__main__': i = 0 while i < 6: if i < 3: np.random.seed(0) print(np.random.randn(1, 5)) else: print(np.random.randn(1, 5)) i += 1 i = 0 while i < 2: print(np.random.randn(1, 5)) i += 1 print(np.random.randn(2, 5)) np.random.seed(0) print("###################################") i = 0 while i < 8: print(np.random.randn(1,5)) i += 1
通過該實驗我們可以得到以下結論:
本文綜合參考瞭如下文章整理:
總結
到此這篇關於Python中random函數用法的文章就介紹到這了,更多相關Python random函數用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45