您好,登錄后才能下訂單哦!
最近找遍了python的各個函數發現無法直接生成隨機的二維數組,其中包括random()相關的各種方法,都沒有得到想要的結果。最后在一篇博客中受到啟發,通過列表解析的方法得到隨機的二維數組。
具體如下:
a = [[random.randint(1, 4) for j in range(1, 3)] for i in range(1, 11)] print(array(a))
其中random.randint(1, 4)用來產生一個隨機整數。此時創建了一個10行2列的數組。
[[1 3] [1 2] [3 1] [1 2] [1 2] [3 3] [3 1] [1 3] [1 2] [3 3]]
然后對random()中的各種方法做一個總結,具體如下:
1、choice()
從序列中獲取一個隨機元素
random.choice(['a','b','c'])
結果為‘b'
2、randint()
用于生成一個指定范圍內的整數,能取到邊界的值
random.randint(1, 2)
結果為‘1'
3、random()
用于生成一個0到1的隨機符點數: 0 <= n < 1.0
random.random()
結果為‘0.29892210378218154'
4、randrange()
從序列中獲取一個隨機數
random.randrange(10,100,2)
結果為‘68'
此時如果出現'module ‘numpy.random' has no attribute ‘randrange'
記得在開頭加上import random
5、sample()
從指定序列中隨機獲取指定長度的片斷,不改變原來序列順序
list2 = [i**2 for i in range(0, 10)] print(random.sample(list2, 3))
結果為‘[16, 9, 4]'
再看看list2有沒有改變
結果為‘[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] '
沒有改變,所以sample函數不會修改原有序列
6、shuffle()
將一個列表中的元素打亂
list1 = [1,2,3,4,5,6] random.shuffle(list1) print(list1)
結果為‘[5, 3, 2, 1, 4, 6]'
7、uniform()
用于生成一個指定范圍內的隨機符點數
a=random.uniform(2,3)
結果為‘2.046090433068011'
以上這篇對python產生隨機的二維數組實例詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。