日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python的random

發布時間:2025/3/20 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python的random 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
隨機數生成是日常工作中經常使用的功能。下面簡要介紹下Python的隨機數生成標準庫random。 一、常用函數 (1)生成0和1之間的浮點數,random() 生成區間為[0,1) import?random print(random.random()) 輸出結果:0.8092116913076974 (2)生成a和b之間的整數,randint(a,b) 生成區間為[a,b] print(random.randint(-10,10)) 輸出結果:9 a必須小于等于b,如果a==b,則輸出a。 print(random.randint(10,10)) 輸出結果:10 (3)生成a和b之間的浮點數,unifrom(a,b),也是均勻分布,因為非常常用放在這里。 生成區間為[a,b] print(random.uniform(-10,10)) 輸出結果:-4.109021075631352 這個函數中,a可以大于b,生成的是min(a,b)和max(a,b)之間的浮點數。 (4)生成a和b之間某個范圍的整數,randrange(a,b,step) 生成區間為:在[a,b]范圍內,從a開始(包含a),每隔step的數形成的集合。 print(random.randrange(0,10,2)) 輸出結果:生成[0,10]之前的偶數 print(random.randrange(1,10,2)) 輸出結果:生成[0,10]之前的奇數 二、操作序列的函數 (1)從一個序列seq中隨機選取一個元素,choice(seq) seq1 = [1,2,3,4,5] seq2 = ((1,2),(3,4),(5,6)) seq3 ="abcdef" print(random.choice(seq1)) print(random.choice(seq2)) print(random.choice(seq3)) 輸出結果: 5 (3, 4) a (2)將一個列表list中的元素隨機打亂,shuffle(list) 注意,shuffle函數需要修改原序列,因此輸入的序列seq必須是可更改的,所以只支持list類型。shuffle有個很傳神的名字:洗牌。 seq = [1,2,3,4,5] print(random.shuffle(seq),seq,sep='\n') 輸出結果: None [2, 5, 1, 4, 3] (3)從一個序列中隨機取出k個元素,sample(seq,k) seq = [1,2,3,4,5] print(random.sample(seq,3),seq,sep='\n') 輸出結果: [4, 5, 2] [1, 2, 3, 4, 5] 注意幾個方面:一是sample并不改變原序列,因此輸入序列seq可以是元組、字符串、set等數據類型。二是取出k個元素是從不同位置取值的,因此如果原序列無重復元素,形成的新序列也不會存在重復元素。三是不管輸入序列seq是什么類型,sample返回的是list類型,看下例。 seq = "abcdef" print(random.sample(seq,3),seq,sep='\n') 輸出結果: ['c', 'a', 'd'] abcdef 三、隨機生成符合某種分布的數據 (1)均勻分布,uniform(a,b) 見第一節描述。非常常用。 (2)正態分布,normalvariate(mu,sigma) mu:均值 sigma:標準差 mu=0,sigma=1為標準正態分布。 除了均勻分布,正態分布用的是最多的。 import?random import?numpy?as?np import?time st = time.clock() N =1000000 n = [] for?i?in?range(N): ? ? n.append(random.normalvariate(0,1)) print("均值=",np.mean(n)) print("標準差=",np.std(n)) print("耗時=",time.clock() - st) 輸出結果: 均值= -7.42643413388e-05 標準差= 1.00049689373 耗時= 5.702438655147374 可以看出,隨機生成1000000個數,這些數符合正態分布。 (3)高斯分布,gauss(mu,sigma) 就是正態分布,采用了不同的實現方式,據說運行速度更快。 import random import numpy as np import?time st = time.clock() N =1000000 n = [] for?i?in?range(N): ? ? n.append(random.gauss(0,1)) print("均值=",np.mean(n)) print("標準差=",np.std(n)) print("耗時=",time.clock() - st) 輸出結果 均值= 0.000604319020838 標準差= 0.999634159673 耗時= 4.827287158657131 1000000個數快了不到1秒,也沒快太多。 (4)還有生成三角形分布、對數分布、指數分布、β分布、伽馬分布等的函數 triangular(low, high, mode)三角形分布 lognormvariate(mu, sigma)對數分布 expovariate(lambd)指數分布 gammavariate(alpha, beta)伽馬分布 等等。實際工作中,這些分布比均勻分布和正態分布用的都少的多。

總結

以上是生活随笔為你收集整理的Python的random的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。