欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?random模塊常用函數(shù)基礎教程

 更新時間:2023年06月16日 09:04:13   作者:安迪Python  
這篇文章主要為大家介紹了python?random模塊常用函數(shù)基礎教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1. random 模塊概述

random [?rænd?m]:自由。

random 是Python的內(nèi)置模塊,直接import導入即可使用,不需要安裝。

【模塊導入語法】

import random 

【random模塊的作用】

  • random 提供了許多函數(shù),可以生成不同類型的隨機數(shù)。如整數(shù)、浮點數(shù)、隨機序列等。

  • 通常用于生成隨機字符串、洗牌、抽樣等操作。

  • random 模塊的使用非常廣泛,可以用于模擬、游戲、密碼學等領域。

隨機的意思可以理解成每次運行得到的結(jié)果都是不一樣的。

2. 調(diào)用模塊的函數(shù)的語法

【調(diào)用語法】

模塊名.函數(shù)名(),如 os.mkdir()

  • os是模塊名。

  • 模塊名和函數(shù)名之間有一個英文小圓點.。

  • mkdir是函數(shù)名。

3. 什么是序列

序列是指一組有序的元素,這些元素可以是數(shù)字、字符、對象等。

序列中的每個元素都有一個唯一的位置,稱為索引。

序列可以是可變的或不可變的,可變序列可以修改其中的元素,而不可變序列則不能。

序列可以通過索引切片來訪問其中的元素,也可以通過循環(huán)遍歷序列中的元素。

以下數(shù)據(jù)類型均屬于序列:

  • 字符串(str)

  • 列表(list)

  • 元組(tuple)

  • 集合(set)

  • 字典(dict)

  • 字節(jié)數(shù)組(bytearray)

  • 字節(jié)數(shù)組(bytes)

其中,字符串、列表和元組是最常用的序列類型。

序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)之一,它們可以存儲多個值,并且可以通過索引訪問這些值。

3.1 字節(jié)數(shù)組(bytearray)

字節(jié)數(shù)組(bytearray)是Python中的一種數(shù)據(jù)類型,它是一個可變的序列,由一系列的字節(jié)組成。

每個字節(jié)都是一個8位的二進制數(shù),可以表示0-255之間的整數(shù)。

字節(jié)數(shù)組可以通過索引訪問和修改其中的元素,也可以進行切片操作。

字節(jié)數(shù)組常用于處理二進制數(shù)據(jù),如圖像、音頻、視頻等文件的讀寫操作。

3.2 字節(jié)數(shù)組(bytes)

字節(jié)數(shù)組(bytes)是一種數(shù)據(jù)類型,它表示一個由字節(jié)(8位二進制數(shù))組成的序列。

字節(jié)數(shù)組可以用來存儲二進制數(shù)據(jù),例如圖像、音頻、視頻等文件。

字節(jié)數(shù)組在Python中是不可變的,這意味著一旦創(chuàng)建,就不能修改其中的元素。

可以使用索引來訪問字節(jié)數(shù)組中的元素,每個元素都是一個整數(shù),范圍從0到255。

3.3 字節(jié)數(shù)組(bytearray)和字節(jié)數(shù)組(bytes)是什么的區(qū)別

  • 可變性:bytearray是可變的,而bytes是不可變的。這意味著可以修改bytearray中的元素,但不能修改bytes中的元素。

  • 內(nèi)存占用:bytearray比bytes占用更多的內(nèi)存,因為bytearray需要額外的內(nèi)存來存儲其可變性。

  • 支持的操作:由于bytearray是可變的,它支持更多的操作,如添加、刪除和修改元素。而bytes只支持不可變的操作,如索引和切片。

  • 用途:bytearray通常用于需要修改二進制數(shù)據(jù)的情況,如網(wǎng)絡編程和加密。而bytes通常用于不需要修改的情況,如文件讀取和傳輸數(shù)據(jù)。

4. random.betavariate()-返回一個0到1之間的隨機數(shù)

beta [?bi?t?]:希臘字母表中第二個字母,β。

variate[?v??r??t]:變量。

betavariate:β變量。

【作用】

random.betavariate()用于生成一個服從Beta分布的隨機數(shù)。

【語法】

import random
random.betavariate(alpha, beta)

【參數(shù)說明】

  • alpha:Beta分布的第一個參數(shù),必須大于0。

  • beta:Beta分布的第二個參數(shù),必須大于0。

alpha[?ælf?]:希臘字母表中第一個字母,α。

beta [?bi?t?]:希臘字母表中第二個字母,β。

【返回值】

返回一個服從Beta分布的隨機數(shù)。

【代碼示例】

# 導入random庫
import random
x = random.betavariate(2, 5)
print(x)

【終端輸出】

random.choice(sequence)

調(diào)用模塊的函數(shù)語法:模塊名.函數(shù)名()。

【代碼解析】

  • random是模塊名。

  • 模塊名和函數(shù)名之間有個英文小圓點.。

  • betavariate是函數(shù)名。

  • alpha=2

  • beta=5

上述代碼中,alpha=2,beta=5,生成的隨機數(shù)x服從Beta(2, 5)分布。

5. 什么是Beta分布

Beta分布是一種概率分布,常用于描述隨機變量在0到1之間的取值情況。

它的概率密度函數(shù)形式為:

其中, 是隨機變量的取值, 和 是分布的兩個參數(shù), 是Beta函數(shù),用于歸一化概率密度函數(shù)。

Beta分布的形狀由參數(shù) 和 控制,當 時,Beta分布退化為均勻分布。

當 和 時,Beta分布呈現(xiàn)出“鐘形曲線”的形狀,且分布的峰值在 處。

Beta分布在統(tǒng)計學中有廣泛的應用,例如用于描述概率、比例、概率密度等。

【備注】

上述內(nèi)容是百度粘貼復制過來的。

具體這個beta分布有什么用我也不明白。

6. random.random()-返回一個0.0到1.0之間的隨機浮點數(shù)

random [?rænd?m]:自由。

【作用】

random 模塊的 random 函數(shù)是一個隨機浮點數(shù)生成函數(shù)。

【語法】

random.random()

【參數(shù)說明】

該函數(shù)不需要傳入任何參數(shù)。

【返回值】

返回一個0.0到1.0之間的隨機浮點數(shù)。

【代碼示例】

import random
x = random.random()
print(x)

【終端輸出】

0.6746022416797438

7. random.random()和random.betavariate(2,5)的區(qū)別

random.random()用于生成一個0到1之間的隨機浮點數(shù),每次調(diào)用該函數(shù)都會生成一個新的隨機數(shù)。

random.betavariate(2,5)是random模塊中的函數(shù),用于生成一個符合Beta分布的隨機數(shù)。

其中參數(shù)2和5分別表示Beta分布的兩個參數(shù)alpha和beta。

每次調(diào)用該函數(shù)都會生成一個新的隨機數(shù),但是生成的隨機數(shù)不是均勻分布的,而是符合Beta分布的。

【小結(jié)】

random是徹底的隨機選取一個數(shù)。

betavariate每次返回的數(shù)雖然不一樣,但是它返回的數(shù)符合Beta分布。

8. random.choice()-從非空序列中返回一個隨機元素

choice[t???s]:選擇。

【作用】

random.choice()用于從一個序列中隨機選擇一個元素并返回。

【語法】

random.choice(sequence)

【參數(shù)說明】

sequence[?si?kw?ns]:序列。

表示要從sequence中選擇元素,sequence可以是列表、元組、字符串等序列。

【返回值】

返回序列中隨機選擇的一個元素。

8.1 從列表中隨機選擇一個元素

import random
my_list = [1, 2, 3, 4, 5]
print(random.choice(my_list))

【終端輸出】

2

8.2 從元組中隨機選擇一個元素

import random
my_tuple = ('a', 'b', 'c', 'd', 'e')
print(random.choice(my_tuple))

【終端輸出】

c

8.3 從字符串中隨機選擇一個字符

import random
my_str = '安迪python學習筆記'
print(random.choice(my_str))

【終端輸出】

8.4 從字典中隨機選擇一個元素

【選擇一個鍵】

import random
my_dict = {"a": 1, "b": 2, "c": 3}
random_key = random.choice(list(my_dict.keys()))
print(random_key)

【終端輸出】

b

【選擇一個值】

import random
my_dict = {"a": 1, "b": 2, "c": 3}
random_value = random.choice(list(my_dict.values()))
print(random_value)

【終端輸出】

1

【溫馨提示】

字典是無序的。

因此不能直接使用random.choice()函數(shù)從字典中隨機選擇一個鍵或值。

需要先將字典的鍵轉(zhuǎn)換為列表,然后再使用random.choice()函數(shù)。

9. 字典知識回顧

【定義】

字典是一種無序的鍵值對集合,用花括號 {} 來表示

鍵和值之間用冒號 分隔。

每個鍵值對之間用逗號 , 分隔。

鍵必須是唯一的,但值可以不唯一。

【語法】

my_dict = {key1: value1, key2: value2, key3: value3, ...}

key1、key2、key3 等是字典的鍵。

value1、value2、value3 等是字典的值。

【字典操作】

  • 取出所有鍵,并轉(zhuǎn)換成列表:list(dict.keys()),返回一個包含字典中所有鍵的列表。

  • 取出一個鍵,用列表索引方式取出一個鍵,list(my_dict.keys())[0]。

  • 取值:dict[key]。

9.1 取出字典的所有鍵

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = my_dict.keys()
print(keys)  

【終端輸出】

dict_keys(['a', 'b', 'c'])

my_dict.keys()是一個Python字典(dictionary)方法,用于返回字典中所有鍵(key)的列表。

具體來說,它返回一個可迭代的視圖對象,其中包含字典中所有鍵的列表。

my_dict是要獲取值的字典對象。

keys表示要返回包含所有鍵的列表。

keys()方法返回的是一個特殊的dict_keys對象,而不是普通的列表。

如果需要將其轉(zhuǎn)換為列表,可以使用list()函數(shù)。

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = list(my_dict.keys())
print(keys)  

【終端輸出】

['a', 'b', 'c']

9.2 取出字典的一個鍵

列表[索引]的方式從列表中取出一個元素,取到的就是列表的一個鍵。

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = list(my_dict.keys())[0]
print(keys)  

【終端輸出】

a

9.3 取出字典的所有值

my_dict = {'a': 1, 'b': 2, 'c': 3}
values = my_dict.values()
print(values)  

【終端輸出】

dict_values([1, 2, 3])

my_dict是要獲取值的字典對象。

values表示要返回包含所有值的列表。

values()方法返回的是一個特殊的dict_values對象,而不是普通的列表。

如果需要將其轉(zhuǎn)換為列表,可以使用list()函數(shù)。

my_dict = {'a': 1, 'b': 2, 'c': 3}
values = list(my_dict.values())
print(values)  

【終端輸出】

[1, 2, 3]

9.4 取出字典的一個值

字典取值有以下4種方法:

  • 使用方括號[]取值:可以通過鍵名直接訪問字典中的值,例如:dict[key]。

  • 使用get()方法取值:get()方法可以通過鍵名獲取字典中的值,如果鍵名不存在,則返回None或者指定的默認值。例如:dict.get(key, default=None)。

  • 使用items()方法取值:items()方法可以返回字典中所有鍵值對的元組列表,可以通過遍歷列表獲取字典中的所有值。例如:for key, value in dict.items()。

  • 使用values()方法取值:values()方法可以返回字典中所有的值,可以通過遍歷列表獲取字典中的所有值。例如:for value in dict.values()。

9.5 方括號[]取值

my_dict = {'a': 1, 'b': 2, 'c': 3}
values = my_dict['a']
print(values)  

【終端輸出】

1

my_dict是要獲取值的字典對象。

a是字典中的一個鍵(key)。

[a]表示取鍵a對應的值。

9.6 列表索引取值

my_dict = {'a': 1, 'b': 2, 'c': 3}
values = list(my_dict.values())[0]
print(values)  

【終端輸出】

1

10. random.choices()返回序列的隨機元素

【作用】

random.choices()函數(shù)用于從給定的序列中隨機選擇指定數(shù)量的元素,可以重復選擇同一個元素。

【語法】

random.choices(population, weights=None, *, cum_weights=None, k=1)

population[?p?pju?le??n]:總體。

weights[we?ts]:體重、權重。

cumulative[?kju?mj?l?t?v]:累積的。

cum_weights:累計權重。

【參數(shù)說明】

  • population:必選參數(shù),表示要操作的序列,可以是列表、元組、字符串等。

  • weights:可選參數(shù),表示每個元素的相對權重,必須是一個與population長度相同的列表,如果不指定,則所有元素的權重相等。

  • cum_weights:可選參數(shù),表示每個元素的累積權重,必須是一個與population長度相同的列表,如果不指定,則根據(jù)weights計算出累積權重。

  • k:可選參數(shù),表示要選擇的元素數(shù)量,默認為1。

【相對權重和累計權重的區(qū)別】

相對權重是指在一組數(shù)據(jù)中,每個數(shù)據(jù)所占的比例或重要性。相對權重的計算方法是將每個數(shù)據(jù)除以所有數(shù)據(jù)的總和,得到每個數(shù)據(jù)的相對權重值。相對權重通常用于比較不同數(shù)據(jù)之間的重要性或影響力。

累計權重是指在一組數(shù)據(jù)中,每個數(shù)據(jù)的權重值逐步累加的過程。累計權重的計算方法是將每個數(shù)據(jù)的權重值依次相加,得到每個數(shù)據(jù)的累計權重值。累計權重通常用于計算某個數(shù)據(jù)在整個數(shù)據(jù)集中的重要性或排名。

例如,如果有一個列表[1,2,3,4],并且指定了相對權重[1,2,3,4],則元素4的被選中的概率是元素1的概率的4倍。

例如,如果有一個列表[1,2,3,4],并且指定了累積權重[1,3,6,,0],則元素4的概率被選中的概率是元素1的概率的10倍。

如果還是不明白,可以這樣理解:

當weight=[1, 2, 3, 4]時,則cum_weights=[1, 3, 6, 10]

  • 1+2=3
  • 1+2+3=6
  • 1+2+3+4=10

這就是逐步累加的過程。

如果還是不明白,那就放棄吧,對現(xiàn)階段學Python沒什么意義,寫出來就是擴展點大家的知識面而已。

【返回值】

返回一個列表,包含k個隨機選擇的元素。

【代碼示例】

import random
# 從列表中隨機選擇一個元素,沒有k參數(shù)的時候,默認取1個元素
lst = ['張三', '李四', '王五', '趙六']
print(random.choices(lst)) # 
# 從列表中隨機選擇兩個元素 k=2,取2個元素
print(random.choices(lst, k=2)) # 
# 從列表中隨機選擇三個元素,k=3,取3個元素
# 其中張三的權重為2,李四的權重為1,王五和趙六的權重為3
print(random.choices(lst, weights=[2, 1, 3, 3], k=3)) 

【終端輸出】

['張三']
['趙六', '張三']
['趙六', '王五', '李四']

11. random.choices和random.choice的異同

【相同點】

  • 都是從給定的序列中隨機選擇元素。

  • 都可以用于列表、元組、字符串等序列類型。

【不同點】

  • random.choices可以從序列中選擇多個元素,而random.choice只能選擇一個元素。

  • random.choices可以指定每個元素被選擇的概率,而random.choice選擇的是等概率的。

  • random.choices返回的是一個列表,而random.choice返回的是一個單獨的元素。

12. random.expovariate-返回指數(shù)分布的隨機數(shù)

expovariate指數(shù)變量。

【作用】

random.expovariate用于生成指數(shù)分布的隨機數(shù)。

【什么是指數(shù)分布】

指數(shù)分布是一種連續(xù)概率分布,常用于描述一些隨機事件的時間間隔,如等待時間、到達時間等。

它的概率密度函數(shù)為f(x) = λe^(-λx),其中λ為分布參數(shù),x為隨機變量。

指數(shù)分布具有無記憶性,即在已知事件發(fā)生的時間點后,下一次事件發(fā)生的時間與上一次事件發(fā)生的時間無關。

指數(shù)分布在可靠性工程、生物學、經(jīng)濟學等領域中有廣泛應用。

【語法】

random.expovariate(lambd)

【參數(shù)說明】

lambd:拉姆達,希臘字母的第11個, λ。

lambd:指數(shù)分布的參數(shù),也稱為速率參數(shù),表示單位時間內(nèi)發(fā)生事件的平均次數(shù)。

lambd表示1.0除以所需的平均值,該指為非0。

如果lambd為正,返回的值的范圍為0到正無窮大。

如果lambd為負,返回的值的范圍從負無窮大到0.

【返回值】

返回一個符合指數(shù)分布的隨機數(shù)。

【lambd為正】

import random
lambd = 0.5
x = random.expovariate(lambd)
print(x)

【終端輸出】

0.5572420727942687

【lambd為負】

import random

lambd = -0.8
x = random.expovariate(lambd)
print(x)

【終端輸出】

-0.2489617561974653

13. random.gammavariate-返回以Gamma分布的隨機數(shù)

gammavariate:伽瑪變量。

gamma:伽瑪,希臘字母表中第3字母 γ。

【作用】

random.gammavariate函數(shù)用于生成符合Gamma分布的隨機數(shù)。

【什么是Gamma分布】

Gamma分布是一種連續(xù)概率分布,常用于描述隨機事件發(fā)生的時間間隔或持續(xù)時間。

它的概率密度函數(shù)為:

【返回值】

返回一個符合Gamma分布的隨機數(shù)。

【代碼示例】

import random
# 生成符合Gamma分布的隨機數(shù)
alpha = 2
beta = 1
x = random.gammavariate(alpha, beta)
print(x)

【終端輸出】

2.0457066268448707

【生成5個服從Gamma分布的隨機數(shù)】

import random
for i in range(5):
    print(random.gammavariate(2, 1))

【終端輸出】

0.36675044434061005
3.5617162671776015
2.441417900614287
2.913293585705838
3.0622343724484318

14. random.gauss-一個符合高斯分布的隨機數(shù)

gauss[ɡa?s]:高斯。

【作用】

random.gauss函數(shù)用于生成一個符合高斯分布的隨機數(shù)。

【什么是高斯分布】

高斯分布,也稱為正態(tài)分布,是一種常見的概率分布。

它的概率密度函數(shù)呈鐘形曲線,中心對稱,具有一個峰值,兩側(cè)逐漸趨于無窮小。

高斯分布的特點是均值和標準差決定了它的形狀和位置。

在自然界和社會現(xiàn)象中,很多現(xiàn)象都可以用高斯分布來描述,例如身高、體重、智力、收入等。高斯分布在統(tǒng)計學、物理學、工程學、經(jīng)濟學等領域都有廣泛的應用。

【語法】

random.gauss(mu, sigma)

【參數(shù)說明】

  • mu:高斯分布的均值(期望值)。

  • sigma:高斯分布的標準差。

mu:繆,希臘字母表中第12個字母, μ。

sigma:西格瑪,希臘字母表中第18個字母,σ。

【返回值】

返回一個符合高斯分布的隨機數(shù)。

【代碼示例】

import random
mu = 0  # 均值
sigma = 1  # 標準差
x = random.gauss(mu, sigma)
print(x)

【終端輸出】

-1.0577354695155303

以上就是python random模塊常用函數(shù)使用教程的詳細內(nèi)容,更多關于python random模塊函數(shù)的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Python?flask的前后端交互

    詳解Python?flask的前后端交互

    這篇文章主要為大家詳細介紹了Python?flask的前后端交互,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python語法垃圾回收機制原理解析

    Python語法垃圾回收機制原理解析

    這篇文章主要介紹了Python語法垃圾回收機制原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 詳解anaconda離線安裝pytorchGPU版

    詳解anaconda離線安裝pytorchGPU版

    這篇文章主要介紹了詳解anaconda離線安裝pytorchGPU版,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 基于Python打造一個媒體管理播放器

    基于Python打造一個媒體管理播放器

    在日常生活中,我們經(jīng)常需要管理和播放大量媒體文件,這篇文章主要介紹了如何使用Python自己打造一個簡單又強大的媒體管理播放器,希望對大家有所幫助
    2024-11-11
  • Python中的上下文管理器和with語句的使用

    Python中的上下文管理器和with語句的使用

    本篇文章主要介紹了Python中的上下文管理器和with語句的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • php memcached的實例用法詳解

    php memcached的實例用法詳解

    在本篇文章里小編給大家整理了一篇關于php memcached的實例用法內(nèi)容,有興趣的朋友們可以跟著學習參考下。
    2021-10-10
  • python中文件變化監(jiān)控示例(watchdog)

    python中文件變化監(jiān)控示例(watchdog)

    這篇文章主要介紹了python中文件變化監(jiān)控示例(watchdog),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python 使用turtule繪制遞歸圖形(螺旋、二叉樹、謝爾賓斯基三角形)

    python 使用turtule繪制遞歸圖形(螺旋、二叉樹、謝爾賓斯基三角形)

    這篇文章主要介紹了python 使用turtule繪制遞歸圖形(螺旋、二叉樹、謝爾賓斯基三角形) ,需要的朋友可以參考下
    2019-05-05
  • pytorch如何獲得模型的計算量和參數(shù)量

    pytorch如何獲得模型的計算量和參數(shù)量

    這篇文章主要介紹了pytorch如何獲得模型的計算量和參數(shù)量操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django實現(xiàn)簡單登錄的示例代碼

    Django實現(xiàn)簡單登錄的示例代碼

    本文主要介紹了Django實現(xiàn)簡單登錄的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論