ZH奶酪:【Python】random模塊


Python中的random模塊用於隨機數生成,對幾個random模塊中的函數進行簡單介紹。如下:
random.random()

用於生成一個0到1的隨機浮點數。如:

import random
random.random()

輸出:

0.3701787746508932


random.uniform(a,b)

用於生成一個指定范圍內的隨機浮點數,兩個參數一個是上線,一個是下線。如:

random.uniform(10,20)

 輸出:

16.878776709127855

random.randint(a,b)

用於生成指定范圍內的整數,生成上線和下線之間的隨機數,如:

random.randint(10,20)

 輸出:

14

random.randrange([start], stop[, step])

從指定范圍內,按指定基數遞增的集合中 獲取一個隨機數。如:

random.randrange(10, 100, 2)

結果相當於從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數。

random.choice(sequence)

參數sequence表示一個有序類型。這里要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬於sequence。如:

random.choice((“Tuple”,”List”, “Dict”)) 

輸出:

List

random.shuffle(x[, random])

用於將一個列表中的元素打亂,如:

x=[“Python”,”data”,”random”,”Mining”,”good”]
random.shuffle(x)
print x

輸出:

[‘Python’, ‘Mining’, ‘good’, ‘random’, ‘data’]

random.sample(sequence, k)

從指定序列中隨機獲取指定長度的片斷。sample函數不會修改原有序列,如:

lists=[1,2,3,4,5,6,7,8,10]
a=random.sample(lists,3)
print a

輸出:

[4, 7, 5]

 

numpy模塊中有random模塊,這兩個模塊在功能方面和性能方面有一定的差別,numpy.random模塊有以下一些函數和功能模型:

numpy.random.rand(d0, d1, …, dn):

其中d0, d1, …, dn為整數(int)型,輸出一個shape為(d0, d1, …, dn)的矩陣。如:

np.random.rand(3,2)

輸出:

array([
          [ 0.14022471,  0.96360618],
          [ 0.37601032,  0.25528411],
          [ 0.49313049,  0.94909878]
])

numpy.random.randn(d0, d1, …, dn)

其中d0, d1, …, dn)為整數型,輸出標准正太分布的矩陣。

生產的分布,則sigma * np.random.randn(…) + mu,如下:

若我們要生成滿足正太分布為N(3,2.5^2),2行4列的array

2.5 * np.random.randn(2, 4) + 3

輸出:

array([
         [-4.49401501,  4.00950034, -1.81814867,  7.29718677], [ 0.39924804, 4.68456316, 4.99394529, 4.84057254] ])

numpy.random.randint(low, high=None, size=None)

生產一定范圍內的元素為整數的array。

low為下限,size為生成的array大小,如果high為none則生成0~low的均勻分布隨機數,若指定了high,那么生產low~high的均勻分布隨機數。如生產2×4的在(0,4)的array,則:

np.random.randint(5, size=(2, 4))

輸出:

array([
         [4, 0, 2, 1],
         [3, 2, 2, 0]
])

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM