日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python中random隨機函數詳解_python

作者:small__roc ? 更新時間: 2022-04-17 編程語言

加載相關庫

import random
import seaborn as sns
import matplotlib.pyplot as plt

# 解決中文不顯示的問題
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
# 解決正負號不顯示問題
plt.rcParams['axes.unicode_minus']=False 

一、random基礎

random.random()                                  # 返回隨機生成的一個實數,它在[0,1)范圍內。
random.randint(1,10)                             # 產生 1 到 10 的一個整數型隨機數
random.randrange(1,100,2)                        # 生成從1到100的間隔為2的隨機整數
random.uniform(1.1,5.4)                          # 產生  1.1 到 5.4 之間的隨機浮點數,區間可以不是整數
random.choice('tomorrow')                        # 從序列中隨機選取一個元素
random.sample('zyxwvutsrqponmlkjihgfedcba',5)    # 多個字符中生成指定數量的隨機字符

# 打亂排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
random.shuffle(items)
print(items)

items:[3, 8, 4, 1, 7, 0, 6, 2, 9, 5]

二、實數分布

2.1 對稱分布

random.triangular(low, high, mode)

返回一個隨機浮點數 N ,使得 low <= N <= high 并在這些邊界之間使用指定的 mode 。 low 和 high 邊界默認為零和一。 mode 參數默認為邊界之間的中點,給出對稱分布。

n = 10000
x = [random.triangular(1, 10, 2) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.2 指數分布

random.expovariate(lambd)

lambd 是 1.0 除以所需的平均值,它應該是非零的。 (該參數本應命名為 “lambda” ,但這是 Python 中的保留字。)如果 lambd 為正,則返回值的范圍為 0 到正無窮大;如果 lambd 為負,則返回值從負無窮大到 0。

n = 10000
x = [random.expovariate(1) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.3 Beta 分布

random.betavariate(alpha, beta)

參數的條件是 alpha > 0 和 beta > 0。 返回值的范圍介于 0 和 1 之間。

n = 10000
x = [random.betavariate(1, 1) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.4 Gamma 分布

random.gammavariate(alpha, beta)

( 不是 gamma 函數! ) 參數的條件是 alpha > 0 和 beta > 0。

n = 10000
x = [random.gammavariate(10, 10) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.5 高斯分布

random.gauss(mu, sigma)

mu 是平均值,sigma 是標準差。 這比下面定義的 normalvariate() 函數略快。

n = 10000
x = [random.gauss(10, 1) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.6 對數正態分布

random.lognormvariate(mu, sigma)

如果你采用這個分布的自然對數,你將得到一個正態分布,平均值為 mu 和標準差為 sigma 。 mu 可以是任何值,sigma 必須大于零。

n = 10000
x = [random.lognormvariate(-100, 1) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.7 正態分布

random.normalvariate(mu, sigma)

mu 是平均值,sigma 是標準差。

n = 10000
x = [random.normalvariate(100, 10) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.8 馮·米塞斯分布

random.vonmisesvariate(mu, kappa)

mu 是平均角度,以弧度表示,介于0和 2pi 之間,kappa 是濃度參數,必須大于或等于零。 如果 kappa 等于零,則該分布在 0 到 2pi 的范圍內減小到均勻的隨機角度.

n = 10000
x = [random.vonmisesvariate(4, 0) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.9 帕累托分布

random.paretovariate(alpha)

alpha 是形狀參數。

n = 10000
x = [random.paretovariate(100) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

2.10 威布爾分布

random.weibullvariate(alpha, beta)

alpha 是比例參數,beta 是形狀參數。

n = 10000
x = [random.weibullvariate(100,10) for i in range(n)]
sns.distplot(x)  # 默認

在這里插入圖片描述

總結

原文鏈接:https://blog.csdn.net/small__roc/article/details/122856904

欄目分類
最近更新