利用Python中的random模塊生成隨機數

今天在用Python編寫一個小程序時,要用到隨機數,於是就在網上查了一下關於Python生成各種隨機數的方法,現將其總結如下:

此處,利用Python中的random模塊生成隨機數。因此首先必須導入該模塊:import random

一. 隨機產生一個元素

import random

#生成一個0到1的隨機浮點數: 0 <= n < 1.0
print(random.random())
>>> 0.8296185863491462

#生成一個指定範圍內的隨機符點數,兩個參數其中一個是上限,一個是下限。
#如果a > b,則生成的隨機數n: a <= n <= b。如果 a <b, 則 b <= n <= a。
#函數原型爲:random.uniform(a, b)
print(random.uniform(1, 10))
>>> 8.257312492950838

#生成一個指定範圍內的整數。其中參數a是下限,參數b是上限,
#生成的隨機數n: a <= n <= b,函數原型爲:random.randint(a, b)
#注意:此處要求 a<=b
print(random.randint(1, 10))
>>> 3

#從指定範圍內,按指定基數遞增的集合中獲取一個隨機數
#函數原型爲:random.randrange(start, stop, step)
#如產生一個0-10的隨機數,其步長爲2,即[0,2,4,6,8],然後在隨機取出一個隨機數
print(random.randrange(0, 10, 2))
>>> 2

#從序列中獲取一個隨機元素。 函數原型爲:random.choice(sequence)
#注意:sequence在python不是一種特定的類型,而是泛指一系列的類型;
#注意:list, tuple, 字符串都屬於sequence。
print(random.choice( ['apple', 'pear', 'peach', 'orange', 'lemon'] ))
print(random.choice( ('1', '2', '3', '4', '5') ))
print(random.choice( [1, 2, 3, 4, 5] ))
>>> orange
>>> 2
>>> 2

#用於將一個列表中的元素打亂。 函數原型爲:random.shuffle(x[, random])
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print(p)
>>> ['Python', 'is', 'simple', 'powerful', 'and so on...']

#從指定序列中隨機獲取指定長度的片斷。sample函數不會修改原有序列。
#如果k大於sequence元素個數的話會報錯。 函數原型爲:random.sample(sequence, k)
list = [1,2,3,4,5,6,7,8,9]
print(random.sample(list, 2))
print(random.sample(list, 5))
>>> [5, 3]
>>> [9, 5, 4, 7, 3]

二.產生一個隨機數組

import numpy as np

#例如產生一個隨機數組array
#方法一:
a = np.array([2,1,4,5,3,9,6,7,8,0])
print(a)
>>> array([2,1,4,5,3,9,6,7,8,0])

#產生一個(0,1)之間的10維的隨機數組
#方法二;
b = np.random.rand(10)
print(b)
>>> array([ 0.43634533,  0.00256198,  0.9252553 ,  0.46312913,  0.18253324,
            0.70458872,  0.79719794,  0.18972441,  0.5304701 ,  0.11495708])

#產生一個(0,1)之間的10維的隨機數組
#方法三;
c = np.random.random(10)
print(c)
>>> array([ 0.62725822,  0.69752737,  0.67910128,  0.32876791,  0.05591991,
            0.71435415,  0.62612756,  0.10492805,  0.45868039,  0.66527572])

#產生一個(0,1)之間的 3*4 的數組矩陣
#方法三;
d = np.random.random(size = (3,4))
print(d)
>>> array([[ 0.81287511,  0.07447028,  0.83052561,  0.69899251],
           [ 0.30087294,  0.24102044,  0.2261788 ,  0.7931203 ],
           [ 0.10688122,  0.93165383,  0.02486699,  0.66883373]])

三.隨機產生一個list或tuple

import random

#例如隨機產生一個指定範圍的整數list或tuple
#方法一:
a = [random.randint(0,5) for i in range(20)]
print(a)

#方法二;
for _ in range(10):
    b = random.randint(0,5)
    print(b)
結果爲:

[5, 2, 0, 1, 3, 2, 4, 1, 2, 3, 5, 1, 1, 3, 1, 3, 1, 1, 3, 0]
4
2
1
1
3
0
5
4
4
5



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章