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

歡迎訪問 生活随笔!

生活随笔

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

python

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

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

該模塊實現了各種分布的偽隨機數生成器。可以在區間內抽取一個隨機數,可以在列表中抽取一個元素,可以從分布中抽取樣本 。

random模塊不能直接訪問,需要導入 random 模塊,然后通過 random 靜態對象調用該方法。

import random

1 生成隨機數

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

random.seed()

返回 [0, 1.0) 范圍內的下一個隨機浮點數。

random.random()

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

random.randint(1,4) #

2

2 序列中隨機選取一個

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

random.randrange(1,5,2)

3

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

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

8

random.choices(population, weights=None, *, cum_weights=None, k) . 從整體中按照權重抽取K個,權重序列長度必須等于population長度。 顯然,不給定權重且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 長度列表,即無重復(無放回)的隨機抽樣。

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

['red', 'green']

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

3從分布中抽取樣本

常用的分布如下表:

函數分布gauss(mu,sigma)/normalvarite(mu,sigma)正態分布

uniform(a,b)均勻分布

expovariate(lamda)指數分布

gammavariate(alpha,beta)Gamma 分布

lognormvariate(mu,sigma)對數正態分布

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

總結

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

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