日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python数值模拟教程_数值模拟必备random模块

發(fā)布時間:2025/3/8 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数值模拟教程_数值模拟必备random模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該模塊實現(xiàn)了各種分布的偽隨機數(shù)生成器。可以在區(qū)間內(nèi)抽取一個隨機數(shù),可以在列表中抽取一個元素,可以從分布中抽取樣本 。

random模塊不能直接訪問,需要導(dǎo)入 random 模塊,然后通過 random 靜態(tài)對象調(diào)用該方法。

import random

1 生成隨機數(shù)

隨機生成器種子,在同一個種子下,生成同樣的隨機數(shù)

random.seed()

返回 [0, 1.0) 范圍內(nèi)的下一個隨機浮點數(shù)。

random.random()

random.int(a,b) 生成整數(shù),a <= N <= b。

random.randint(1,4) #

2

2 序列中隨機選取一個

在序列range() 中隨機選取一個整數(shù)random.randrange( start, stop , step )

random.randrange(1,5,2)

3

random.choice(population), 從非空序列 population 返回一個隨機元素。 如果 seq 為空,則引發(fā) IndexError.

random.choice([2,5,8])

8

random.choices(population, weights=None, *, cum_weights=None, k) . 從整體中按照權(quán)重抽取K個,權(quán)重序列長度必須等于population長度。 顯然,不給定權(quán)重且k=1. 等價于

random.choice(population).

random.choices(['red', 'black', 'green'], [4, 10, 2], k=6)

['green', 'black', 'red', 'black', 'green', 'black']

random.sample(population, k, *, counts=None),返回從總體序列或集合中選擇的唯一元素的 k 長度列表,即無重復(fù)(無放回)的隨機抽樣。

random.sample(['red', 'black', 'green'], 2)

['red', 'green']

3.9版本之后,增加counts 形參,可以指定個數(shù), random.sample([‘red’, ‘red’,‘red’,‘black’, ‘green’], 2)等價于random.sample([‘red’,‘black’, ‘green’],counts=[3,1,1], 2)

3從分布中抽取樣本

常用的分布如下表:

函數(shù)分布gauss(mu,sigma)/normalvarite(mu,sigma)正態(tài)分布

uniform(a,b)均勻分布

expovariate(lamda)指數(shù)分布

gammavariate(alpha,beta)Gamma 分布

lognormvariate(mu,sigma)對數(shù)正態(tài)分布

betavariate(alpha,beta)Beta 分布

weibullvariate(alpha,beta)Weibull 分布

paretovariate(alpha)Pareto 分布

vonmisesvariate(mu,kappa)von Mises 分布(

random.gauss(1,2)

-0.34372692554557815

random.uniform(1,2)

1.7719936383153665

random.expovariate(1)

0.079384517694696

random.gammavariate(1,3)

3.8134444290373866

random.lognormvariate(1,2)

2.561312589509173

random.betavariate(1,2)

0.03565784800319274

random.weibullvariate(1,2)

1.211306128111137

random.paretovariate(1)

1.709941711311189

random.vonmisesvariate(1,2)

2.377632588889548

data = [random.gammavariate(2,4) for i in range(10000)] # 抽取10000個gamma分布樣本

#直方圖

import matplotlib.pyplot as plt

plt.hist(data, bins=100, color="#FF0000", alpha=.7)

4 打亂順序

random.shuffle(x [, random])將序列 x 隨機打亂位置。

a=[1,3,5,7,9]

random.shuffle(a);print(a)

[3, 7, 5, 1, 9] # 原地打亂順序

原文鏈接:https://blog.csdn.net/weixin_43705953/article/details/109025791

總結(jié)

以上是生活随笔為你收集整理的python数值模拟教程_数值模拟必备random模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。